Skip to main content

Full text of "Byte Magazine Volume 11 Number 10: Public Domain Powerhouses"

See other formats





The Multifaceted 
Apple II GS: 

Mixed Blessings from a 16-bit CPU 


-. — v- 

Public Domain Powerhouses 
Reviewed: New Compaq II 

$4.25 CANADA / £1.75UK, 

Turbo Pascal Programming? 



$10.00 Scratch 'n Win Rebate! 

Turbo GameWorks® 

Also recently released, Turbo GameWorks 
is what you think it is: "Games" and 
"Works." Games you can play right away 
(like Chess, Bridge and GoMoku), plus 
the Works— which is how computer 
games work. All the secrets and strategies 
of game theory are there for you to learn. 
You can play the games "as is" or modify 
them any which way you want. Source code is included to let you 
do that, and whether you want to write your own games or simply 
play the off-the-shelf games, Turbo GameWorks will give hours of 
diversion, education, and intrigue. George Koltanowski, Dean 
of American Chess, and 
former President, United 
States Chess Federation, 
reacted to Turbo Game- 
Works like this:" With 
Turbo GameWorks, 
you're on your way to 
becoming a master chess 
player" And Kit Woolsey, 
writer, author, and twice 
Champion of the Blue 

Ribbon Pairs, wrote, " Now play the world's most popular cart 
game— Bridge . . . even program your own bidding and 
scoring conventions!' Suggested retail: $69.95. Use a $10.00 
Scratch 'n Win Rebate and you're talking an incredible $59.95! 
Minimum memory: 192K 

' v 

Turbo GameWorks' Chessboard 

2 w. 



■ - --..-* - 

Recognition lor Borland International has come Irom business, trade, and media, and includes both product 
awards and awards lor technical excellence and marketing. 
-America's Cup. Coming Soon! 

Send a buck to the boat! 

II you'd like to help America's eflort to recapture the America's Cup from Australia, 
you can make a tax-deductible donation to "Heart of America" Challenge, 11 
South LaSalle St., Suite 1670, Chicago, Illinois 60603 

create ;»« G ' r 5cs! 

$10.00 Scratch 7? Win Rebate! 

Turbo Graphix Toolbox® 

It includes a library of graphics routines for 
Turbo Pascal programs. Lets even 
beginning programmers create high- 
resolution graphics with an IBM, Hercules,'" 
or compatible graphics adapter. Our Turbo 
Graphix Toolbox includes all the tools you'll 
ever need for complex business graphics, 
ea^y windowing, and storing screen images to memoiy. It comes 
complete with source code, ready to compile. Suggested retail: 
$69.95, but with a $10.00 Scratch 'n Win Rebate, only $59,951 
Minimum memoiy 192K 

The ultin 1316 erJenC e! $10.00 Scratch 'n Win Rebate! 

Turbo Tutor® 2.0 

The new Turbo Tutor can take you 
from "What's a computer?" through 
complex data structures, assembly 
languages, trees, tips on writing long 
programs in Turbo Pascal, and a high 
level of expertise. Source code for every- 
thing is included. New split screens allow 
you to put source text in the bottom half 
of the screen and run the examples in the top half. There are 
quizzes that ask you, show you, tell you, teach you. You get a 400- 
page manual— which is not as daunting as it sounds, because 
unlike many software manuals, it was not written by orangutans. 
Suggested retail: $39.95. Use a $10.00 Scratch 'n Win Rebate and 
you're down to an unheard of $89,951 Minimum memory: 192K 

How to use Scratch 'n Win Rebates 

It's really simple. You purchase the product between 9/5/86 and 3/31/87, and 
return the license agreement along with dated proof of purchase and your rebate 
card. We'll mail you a check for $10.00 on single product purchases or a check for 
$15.00 when you buy an advertised "bundle"— which means our Turbo Pascal 
Jumbo Pack, or Turbo Lightning and Lightning Word Wizard, or Reflex: The Analyst 
and Reflex Workshop, or SideKick and Traveling SideKick. (Restrictions do apply. 
Rebates are not valid in combination with any other Borland or dealer discount. See 
Official Rules on back of Instant Winner card). 





$10.00 Scratch 7? Win Rebate! 

Turbo Prolog 1 " 

"Borland International, Inc. is 
gunning onto the fast track in the 
artificial intelligence and engln- 
eering-lsnguagewftmre race, 
tiding aboaM a new $99 Turbo 
Prolog, " says Tom Schwartz in 
Electronic Engineering Times. 
And so we are. Our new Turbo 
Prolog has drawn rave 
reviews—which we think are 
well deserved— because Turbo Prolog 
brings 5th-generation language and supercomputer power 
to your IBM PC and compatibles. Turbo Prolog is a high- 
speed compiler for the artificial intelligence language, 
Prolog, which is probably one of the most, powerful 
programming languages ever conceived We made a 
worldwide impact, with Tuibo Pascal and you can expect, the 
same results and revolution from Turbo Prolog, the natural 
language of artificial Intelligence. Danyl Rubin, writing in 
AI Expert said, "Turbo Prolog offers generally the fastest and 
most approachable implementation of Prolog. " Suggested 
retail, $99.95. Use a $10.00 Scratch 'n Win Rebate and that 
goes down to only $89,951 Minimum memoiy; 384K 

Technical Specifications: 

TURBO PASCAL 3.0 Minimum memoiy 128K. includes 8087 and BCD lealures lor 16-bit MS-DOS and CP/M-86 systems 
CP/M-80 version minimum memory 48K; 8087 and BCD lealures not available TURBO DATABASE TOOLBOX Minimum 
memory 128K CP/M-80 minimum memory 48K Requires Turbo Pascal 2.0 or later TURBO CRAPHIX TOOLBOX' 
Minimum memory 192K Requires PC/MS-DOS 20 or later. Turbo Pascal 3 0. and IBM CGA. Hercules Monochrome Card or 
equivalent TURBO TU TOR 2.0 Minimum memory: 192K CP/M-80 version minimum memory 48K, Requires PC/MS-OOS 
20 or laler and Turbo Pascal 30. TURBO EDITOR TOOLBOX' Minimum memory 192K. Requires PC/MS-DOS 2.0 or later 
and Turbo Pascal 3 TURBO GAMEWORKS' Minmum memory 192K Requires PC/MS-DOS 20 or laler and Turbo 
Pascal 3 TURBO PROLOG' Minimum memory 384K, REFLEX: THE ANALYST' Minimum memory 384K Requires IBM 
CGA. Hercules Monochrome Card or equivalent Works with Intel's AboveBoard-PC and -AT. AST's RAMpage" and RAMpage' 
AT, Ouadram's Liberty-PC and -AT; Tecmar's 640 Plus: IBM's EGA and 3270/PC; AT&T's 6300 and many others. REFLEX 
WORKSHOP' Minimum memory. 384K. Requires Reflex: The Analyst. TURBO LIGHTNING' Minimum memory. 256K Two 
disk drives required Hard disk recommended. LIGHTNING WORD WIZARD' Minimum memory 256K Requires Turbo 
Lighlning Turbo Pascal 3 required to edil source code. SIDEKICK' Minimum memory. 128K. TRAVELING SIDEKICK' 
Minimum memory 256K SUPERKEY' Minimum memory 128K "For IBM PC. AT, XT, PCji and true compatibles only, 
running PC/MS-DOS 2 or taler 

Turbo Pascal Programming! 


$10.00 Scratch 'n Win Rebate! 

Turbo Editor Toolbox™ 

Recently released, we called our new 
Turbo Editor Toolbox a "construction 
set to write your own word processor." 
Peter Feldmann of PC Magazine 
covered it pretty well with, "A 'write 
your own word processor' program for 
intermediate level programmers, with 
lots of help in the form of prewritten 
procedures covering everything from word wrap to pull-down 
windows!' Source code Is included, and we also Include Micro- 
Star, a full-blown text editor with pull-down menus and window- 
ing. It interfaces directly 
with Turbo Lightning to 
let you spell-check your 
MicroStar files. Jerry 
magazine said, "The 
new Turbo Editor 
Toolbox is the Turbo 
Pascal source code 
to Just, about anything 
you ever wanted a PC- 
compatible text editor to 

do" Suggested retail: $69.95. Use a $10.00 Scratch 'n Win 
Rebate and you'll get all this for only $59.95! Minimum 
memory: 19SK 

MicroStar file directory 
accessed by pu l-down menu 

Borland's Business Productivity Programs: 
Reflex: The Analyst' Analytical database manager. Provides complete, new look 
at data normally hidden by programs like 1-2-3" and dBASE* Best report generator 
lor, and complement to, 1-2-3. 

Reflex Workshop' Important new addition to Reflex: The Analyst. Gives you 22 
different templates to run your business right. 

SideKick Complete RAM-resident desktop management includes notepad, diater, 
calculator and more. 

Traveling SideKick* Electronic version of business/personat diaries, daytime 
organizers; works with your SideKick files; important professional tool. 

SuperKey" Keyboard enhancer. Simple macros turn 1000 keystrokes into 1. Also 
encrypts your liles to keep confidential files confidential. 

Borland's Electronic Reference Programs: 
Turbo Lightning' Works with all your programs and checks your spelling while 
you /ype' Incfudes 80.000-word Random House* Concise Word List and 50,000- 
word Random House Thesaurus. Forerunner of Turbo Lightning Library" 

Lightning Word Wizard' Includes ingenious crossword sotver and six other word 
challenges. II you're into programming, Lightning Word Wizard is also a development 
toolbox and the technical reference rnanuaf for Turbo Lightning. 

All Borland products are registered trademarks or trademarks ol Borland Internalional. Inc or Borland/Analytica. loc Turbo Lightning 
Library is a trademark ol Borland Inlernalional Inc AST TurboLaser. RAMpage 1 AT. AdvanlagePfemiuoi. SixPak Premium, 3G Pak and 
RAMpage' are trademarks ol AST Research. Inc. Lotus 1-2-3 is a registered trademark ot Lotus Development Corp dBASE is a 
registered trademark ot Asfilon-Tale IBM is a registered Irademark ot Inlernalional Business Machines Corp Random House is a 
regislered Irademark ot Random House. Inc. Hercules is a trademark ot Hercules Compuler Technology CP/M is a registered 
Irademark ol Oigital Research. Inc Traveling SideKick is not in any way associated wilh Traveling Sottware. Inc ol Seattle. 
Washington Copyright 1986 Borland Internalional BI-1075 

News from Borland International! Vol. 1 No. 2 

How Borland is helping bring the America's Cup back to America! 

"I think those 
who grasp the 
technology will 

Bill Shore, President, 
Shore Sails Co., Newport, EI 

Borland's Philippe Kahn at the helm of 

with Shore Sails' President Bill Shore 


Sail-making is traditional— a craft— but I think 
we're huge steps ahead of the competition when we 
get involved with higher technology," says Shore. 

He and Shore Sails' 17 different franchised sail lofts 
in the U.S. are in what Shore describes as a "highly 
competitive business, whether it's America's Gup racing 
or any race." And he adds, "You guys (Borland) do good 
stuff that's affordable, which is one of the reasons why 
we wrote all our sail design programs in Turbo Pascal.®" 

"These days," he says, "there are many parts to a 
sail, and Turbo Pascal lets us arrange all the parts 
properly. We design what the garment industiy calls 
a marker'— and rely on Turbo Pascal to do 
critical things like getting thread line 
in the same direction as load lines. 

We take the diskette to our new 
$250,000 laser cutter, which follows 
the Pascal program precisely, 
draws out the sail and cuts 
out the sail. We glue and 
sew and you've got the 
best there is." 

"Heart of America" surfing downwind, 
Sanla Cruz, California 

"The wrong sails will sink 
your chances— if not your boat 
—so we wrote Turbo Pascal 

The right sail design, at 
the right price, right now, 
has to happen in 17 different 
Shore Sails Lofts across 

It had to happen with 
America's Gup challenger 
HeaH of America which 
carries Shore sails— and it 
has to happen with the (cur- 
rently) 700 different boats 
that Shore Sails has in their 
Turbo Database Ibolbox" 

Sail design, sail pridng 
and "beating the handi- 
capper" are all done at Shore 
Sails with Turbo Pascal 

In case you don't know 
the sharp end from the blunt 
end of a boat, the right sail 
design for any boat is more 
than design and price. It's 
tactical advantage. Design- 
ing sails that take the 
greatest advantage of the 
boat's basic design and 
rigging without getting stuck 
with a heavier-than-desirable 
Official Handicap. (Handi- 
caps can eat your chances 
faster than a Great White.) 

The "right sail" design 
bends but doesn't break the 

Win Fowler, Shore Sails Co., 
Portland, Maine. 

racing rules written by, 
amongst others, MORR 
(Midget Offshore Racing 
Rules) or IOR (International 
Offshore Rules). Turbo Pascal 
spills out "right sail" designs 
for Shore Sails so their cus- 
tomers tend to "handicap" 
the Rules Committee instead 
of the other way around. 

Shore Sails' connection 
with Borland doesn't end 
with Turbo Pascal and our 
Database Toolbox. 

Shore's Fowler has also 
written SuperKey® macros 
for "eveiy file we have" and 
says, "We'd be lost without 

He uses SideKick® to dial 
eveiy phone call and Side- 
Kick's Notepad to commun- 
icate between all the Lofts, 
saying, "That way we don't 
need a word processor." 
Shore Sails also uses Turbo 
Lightning 8 and Reflex The 

So why so many Borland 
products in one company? 

Win Fowler says, Wed be 
sunk without them!" 

is no second P^e 

" Omar 


Borland's Instant Winner Game 

Scratch this card now and you could instantly 

win 2 free round-trip airline tickets to Australia 

for the America's Cup Race! 

# First Prize ($10,000 value!) includes 
$10,000 ^^ accommodations for two in Perth, Australia 

during the final America's Cup races, which 
start January 31, 1987. See America win it 
hack after our only loss in 134 years! There's 
more than one instant winner in Borland's 
Instant Winner Game, because you could win one of two new $6,895 4-WD 
Suzuki Samurai convertibles, ^^^g, or a $4,995 AST TurboLaser 11 
printer, or a $4,499 •«ilBP^ Toshiba T3100, TU or a 

$2,399 Toshiba Tl 100™ W 1 ^ Plus, or a $595 

AST SixPakPremium™, or a $69.95 Traveling SideKick,®or 
any one of hundreds of other Borland products— and at 
rfpi,. | s tM the very least a Borland Rebate Coupon, 

good for $ 10 off any single product or $ 1 5 off 
any bundled product offer! 

f i>. 




See Official Rules on the back of this card for details. 

Don't delayl There will be a second-chance drawing for the trip If not claimed by 12/30/86. There's also a second-chance drawing for the wo Suzukis If not claimed 
by 8/28/87. All rebate coupons are good for products purchased 9/5/86-3/31/8?. Product prices above are suggested list prices 

Rub the silver box to reveal whether 
you win a prize or get a rebate coupon. 

blank to the right. 

Then fill in the second-chance entry 





Jys .'■■■ •' ■ 7' •'.■-'■■■ •-'■*■■ ."..; 



■ M':'. 




We're running two Second- 
Chance Sweepstakes drawings 
to award the trip and cars. 
They will be won by some- 
one—it could be you! Fill in the 
entry coupon and mail it now. 
Winners will be notified im- 
mediately, because the final 
America's Cup races start in 
Australia on January 31, 1987, 
and you'll have to pack 
in a hurry. 

(You will need a valid passport and the ability 
to comprehend Australian versions of the 
English language.) 




State _ 



1. NO PURCHASE NECESSARY; To participate, you may obtain a game card msertedmto the October. November, December, or January issue of the following magazines. PC World; Byte; PC Tech Journal; PC Magazine. You may also obtain a game 
card by mailing a self- addressed, stamped envelope to; Borland International Game Card, P.O. Box 8 70, Wilton, CT 06897 (Washington State residents send self- addressed envelope.) Limit one game card per stamped request. All requests must be 
received by January 15, 1987. 

2. TO PLAY; Remove the rub- off area on the game card to reveal what prize or rebate offer you have obtained 

3. PRIZES/ REBATES: Beneath the rub- off area one of the following prizes may be revealed Tup for Two to America's Cup Races or S 1 0,000; 1 986 Suzuki4W Samurai Convertible orS6.895. AST Tuibo Laser; Toshiba 1 1 00 Portable Computer; 
Toshiba3 1 00 Portable Computet; AST Six Pakpiemium; AST Advantagepremium, AST3GPak AST Rampage; AST Rampage AT; Free Borland Product, or you may obtain the following rebate offer; S10 rebate offer on any individual product or SI 5 
rebate offer on any single advertised Boriand bundle (See rule #11 for prize details). 

4. PRIZE CLAIMS: If you obtain one of the prizes stated in Rule #3. sign your full legal signature on the game caid and send via certified mail (copy should be made for your records) along with your name and address to: Borland International Prize 
Claim, 196 Danbury Road, Wilton, CT 06897. All pnze claims must be received or postmarked by February 15, 1987 (See Rule #12 foi Trip for Two to America's Cup exception.) 

5. REBATE CLAIMS: Rebates aie good for products purchased fiom September 5, 1986 through March31, 1987 TheSlO rebate isgood lor any individual Borland product and theS 15 rebate isgood foiany advertised Borland softwaie bundle. To 
receive your rebate you must return your completed license agieement from the manual thisgamecard and dated proof of purchase to Borland International, GameCard Rebate, 4585 Scotts Valley Drive. Scotts Valley, C A 95066 Upon receipt of the 
license agreement game card and procf of purchase. Borland will send your check. Rebate is not valid with any other rebate or promotion offered directly fiom Borland 

6. VERIFICATION: All game materials are sublet to verification. Game materials are void and will be rejected if not obtained through authorized, legitimate channels, and may be rejected it any part is reproduced, counterfeited, torn or altered in any 
way, or if materials contain printing, typographical or mechanical errors Decisions of the Redemption Centei aie final. Game pieces from any game other than the Borland Instant Winner Game may not be used in this game. 

7. CONOITIDNSOF PARTICIPATION: Material submitted becomes the property of Borland International. The submission ol game pieces is tlie sole responsibility of the individual seeking venlication, who is solelyresponsible for lost late, or mis- 
directed mail. All taxes, registration and inspection fees are the sole responsibility of the verified winner. Winners may be required to execute an affidavit of eligibility and name and likeness publicity release. By participating in the game you accept and 
agree to be bound by these rules and the decision of the OHicial Redemption Centei which will be final 

8. ELIGIBILITY: Participation is open solely to residents of the United States 18 years of age and over, except employees and agents of Borland International service agencies, andindividualsengaged in the development production, or distribution ol 
game malenals, The Merritt Group, Inc. and then immediate family or members of their households. Void in Vermont and where prohibited by law 

9. GAME SCHEDULE AND AWARD OF PRIZES: The Borland Instant Winner Game will commence on or about September 5, 1986 and end on January 30, 1987 It will officially end. however, when all game pieces aie distributed. Verified game 
prizes will be awarded within thirty ( 30) days from the date of their receipt for verification at the Official Redemption Center A ma|oi prizewinners' list can be obtained by sending a stamped, sell- addressed envelope to: Borland Instant Winner Game 
Winners' List P.O. Box 7089, Wilton, CT 06897 

10. ODDS CHART: The odds of winning prizes are based upon obtaining the one rare game piece among the applicable number of game pieces 

Trip for Two to America's Cup or $10,000 
Suzuki 4W Samurai Convertible JA or $6,895 
AST Turbo Laser 
Toshiba Portable Computer 
AST Memory Boards 
Borland Products 
All remaining game cards will contain a S10 rebate good on any individual Borland product or a S 15 rebate good toward any advertised 8 orland software bundle 

11. PRIZE DETAILS: Trip for two to America's Cup Races (or SI 0.000) will include coach seating round tup airfare on regularly scheduled commercial airline from San Francisco. Calilorma to Perth, Australia and up to two weeks hotel accom- 
modations in Perth, Australia plus $4. 500 spending cash Winners will be responsible loi obtaining visa, passpoit. and all other travel documents Trip does not include meals, taxes, excess baggage charges and other hotel charges. Minor must be 
accompanied by parent or legal guaidian. 

Suzuki4W Samurai Convertible JA Standard Equipment Package) or S6. 895). verified winner will be responsible for all registration insurance, and licensing lees. AST Turbo Laser Toshiba Portable Computer Model # T1 100; Toshiba Portable Com- 
puter Model # T3100; AST Memory Boards and Free Borland Products are norv substitutional except by sponsor due to productavailabihtyand all warranties and guarantees are subject to manufacturers terms. Alt prizes are nort- transferrable. Winning 
consumer is responsible for all local state and federal taxes 

12. SECOND CHANCE SWEEPSTAKES: There are two Second Chance Sweepstakes drawings scheduled to be conducted on December31, 1986 and February 28. 1987 Random drawing horn all entries received by December 30, 1986 will 
award trip for two to America's Cup Races ( or SI 0,000) Random drawing from all entries received by Febmaiy 26. 1987 will award two (2) Suzuki 4W Samurai (or $6,895) All remaining prizes that are unclaimed after Februaiy 15, 
1987 will remain unclaimed 

If you have any questions concerning the Borland Instant Winner Game, call: 1-800-451-4471. 


Total Value 

Odds of Winning 


S 10.000.00 

1 in 6. 458,000 


S 13,790 00 

1 in 3,229.000 


S 4.995 00 

1 in 6, 458.000 


S 6,898 00 

1 in 3,229,000 


S 15,025 00 

1 in 258,320 



1 in 6. 458 



1 in 6.264 

Th e Worldwide 

Turbo Pascal Programming! 

y e rsion 

$10.00 Scratch 'n Win Rebate! 

Turbo Pascal® 3.0 

"For the IBM* PC, 
the benchmark Pascal 
compiler is undoubtedly 
Borland International's 
Turbo Pascal" says Gary 
Ray of iWeelc. We and 

more than 500,000 other 
people around the world 
think Mr. Ray got that 
right. Since launch, Turbo 
Pascal has become the de standard 
in high-speed Pascal com- 
pilers. Described by Jeff 
Magazine as the 
"Language deal of the 
century? Turbo Pascal is 
now an even better deal 
than that— because we've 
Included the most popular 
options (BCD reals and 
8087 support). What used 




$W.OO Scratch 'n Win Rebate! 

Turbo Database 

A perfect, complement to Turbo 
PaBcal, because it, contains a 
complete library of Ftoal 
procedures that allowB you to 

search and sort data aud build 
powerful database applications. 
Having Turbo Database Toolbox 
means you don't have to re-Invent 
the wheel each time you write a 
Turbo Pascal program. It comes 
with source code for a free sample 
database— right on disk. The 
database can be searched ty key 
words or numbers. Update, add, or 
delete records as needed Just 
compile it and it's ready to go to 
work for you. (Shore Sails has 

to cost, $124.95 is now 
only $99.95! You now get 
a lot more for a lot less: 
the compiler, a completely 
integrated programming 
environment, and BCD 
reals and 8087 support- 
all for a suggested retail 
of only $99.95. And with a 
Scratch 'n Win $10.00 
Rebate, you pay only 
189.95-which really is 
the "language deal of the 
centuiy"! Minimum 
memoiy: 128K 

more than 
700 boat 
designs and 
rigs In their 


story.) Suggested retaiL $69.96. 

With a $10.00 Scratch 'n Win Rebate 

check back from us, only $59,951 

Minimum memory: 128K 



(408) 438-8400 TELEX: 172373 

Inquiry 48 for End-Users. 
Inquiry 49 for DEALERS ONLY. 


I want 
the best! 

For credit card orders 
or the dealer nearest you 

call (800) 255-8008 

in CA call (800) 742-1133 
Copies Product Price Totals 

. Turbo Pascal 3.0 
w/8087 & BCD 

$99.95 J_ 
149.95' J_ 
69.95' S_ 
199.95' J_ 

_ Reflex: The Analyst 

Reflex Workshop 

— Rellex, Rellex Workshop 
_ Turbo Prolog 
_ Turbo Pascal forCP/M-80 
__ Turbo Database Toolbox 
__ Turbo Graphix Toolbox 
_.:. Turbo Tutor 2.0 
_ Turbo Editor Toolbox 
_ Turbo GameWorks 
_ Turbo Lightning 

Lightning Word Wizard 

__ Turbo Lightning, 

Lightning Word Wizard 
_ SideKick 
_ Traveling SideKick 
_ SideKick, 

Tiaveling SideKick 

__ SuperKey 

Outside USA add $10 per copy 
CA and MA res. add sales tax 

Amount enclosed 

Prices include shipping to all US cities. 
Carefully describe your computer system: 
Mine is: _ 8-bit —16-bit 
I use: —PC-DOS — CPIM-80 
— MS-DOS —CPIM-86 
My computer's name and model is: 



69.95' $- 




The disk size I use is: □ 3W D 5W D 8' 
Payment: VISA MC Money order Check 
Credit card expiration date / 

C**« I I I I I I I I I 

I I I I I I I I I I 



Shipping Address: 

Cityc . 


CODs and purchase orders WILL NOT be accepted by Borland. 

Outside USA make payment by bank draft, payable in US 

dollars dram on a US Dank. 

'Limited Time Oiler 

"YES. if within 60 days of purchase you find 

thai this product does not perform in 

accordance with our claims, call our 

customer service department and 

we will gladly arrange a refund. 

All prices are suggested 
list prices and are subject 
to change without 




Introduction , 82 

Product Preview: The Apple II GS 

by Gregg Williams and Richard Grehan 84 

The 65C8I6 processor brings the Apple II into the 16-bit world. 

Ciarcias Circuit Cellar: Build an Intelligent Serial EPROM Programmer 

by Steve Garcia 103 

This new and improved device includes an on-board CPU and intelligent firmware. 

Programming Proiect: Safe Storage Allocation 

by Jonathan Amsterdam 122 

Some techniques to avoid the dangers involved in allocating memory. 

Sound and the Amiga by David D. Thiel 139 

The amount of RAM available to the sound system provides the limit of what you can do. 

Programming Insight: A Useful Property of 2" by Robert C. hrp Jr. 145 

Exploit the powers of 2 for simplified flag testing and input comparison. 


Introduction 152 

PD PROLOG by Robert Morein 155 

A fifth-generation language for MSDOS and PC-DOS environments. 

An Icon Tutorial by Ralph E. Griswold and Madge T. Griswold 167 

This high-level, general-purpose programming language emphasizes nonnumeric 

Enhanced Console Driver by Anthony Zackin 183 

You can create a user-friendly interface for DOS with this AN SI. SYS replacement. 

Abundance by Roedy Green 193 

A FORTH-based database language that can run backward in time. 

Z80MU by Robert A. Baumann 203 

This program for the IBM PC emulates the Zilog Z80 and CP/M 2.2. 

CP/M Hall of Fame by Brock N. Meeks 219 

A roundup of some of the best public domain CP/M software. 


Introduction 226 

Reviewer's Notebook by }on Edwards 229 

The Commodore Amiga by lorn Thompson 231 

This machine features spectacular graphics and useful peripherals. 

The Compaq Portable II by Stan Miastkowski 239 

A version of the Portable 286 that comes in four configurations. 

BYTE (ISSN 0360-52801 is published monthly with one extra issue per year by McGraw-Hill Inc. Founder lames H. McCraw (18601948). Executive, editorial 
circulation, and advertising offices: One Phoenix Mill Lane. Peterborough. NH 034 58. phone 1603) 924-9281 Office hours: Monday through Thursday 
8:30 AM -4:30PM. Friday 8:30 AM - 1:00 PM. Eastern Time. Address subscriptions to BYTE Subscriptions. P.O. Box 590. Martinsville Nl 08836. Postmaster 
send address changes. USPS Form 3 579. undeliverable copies, and fulfillment questions to BYTE Subscriptions. PO. Box 596. Martinsville. N) 08836 
Second-class postage paid at Peterborough. NH 03458 and additional mailing offices. Postage paid at Winnipeg, Manitoba Registration number 9321 
Subscriptions are $21 for one year. $38 for two years, and $55 for three years in the U.S. and its possessions. In Canada and Mexico. $23 for one year. 
$42 for two years. $61 for three years. $69 for one year air delivery to Europe. 31.000 yen for one year air delivery to lapan. 15.600 yen for one year 
surface delivery to lapan, $37 surface delivery elsewhere. Air delivery to selected areas at additional rates upon request Single copy price is $3 50 in 
the US. and its possessions. $4.2 5 in Canada and Mexico. $4.50 in Europe, and $5 elsewhere. Foreign subscriptions and sales should be remitted in 
US funds drawn on a US bank Please allow six to eight weeks for delivery of first issue. Printed in the United States of America 



VOLUME 11, NUMBER 10, 1986 

Four 14-inch Tape Backup Units by Malcolm C Rubel 243 

Systems from Alloy, Sysgen. "tellgrass, and Tecmar offer a variety of features and capabilities. 

muLISP-86 by Robert I. Schalkoff 249 

The successor to muLISP-83 and the short-lived muLISP-85. 

ITC's Modula-2 Software Development System by Mark Bridger 255 

A compiler and editor package for IBM PCs and compatibles. 

Microsoft Word Version 3.0 by Malcolm C. Rubel 261 

Powerful word processing that is easy to learn. 

The Norton Utilities. PC Tools, and Super Utility by Rubin Rabinovitz 265 

Three programs for data recovery and file management. 

Review Feedback 273 

Readers respond to previous reviews. 


Introduction 276 

Computing at Chaos Manor: The Show Goes On? by \erry Pournelle 279 

jerry attends NCC where his worst fears are confirmed, 

According to Webster: Bit by Bit Putting It Together 

by Bruce Webster 293 

A wedding announcement and a look at Advanced Trace86. 

Applications Only: Shareware by Ezra Shapiro 297 

Ezra looks at some programs for MS-DOS machines. 

BYTE Japan: Taiwan's Computex 1986 by William M. Raike 307 

Bill travels to Taipei and sees numerous IBM-compatible machines. 

BYTE U.K.: BASIC to C by Dick Fountain 311 

CGEN provides an efficient means of translating Microsoft BASIC programs into C. 


Amiga 324 

Atari ST 328 

IBM PC and Compatibles 333 

Editorial: Signs of Vitality 6 

Microbytes 9 

Letters 14 

Whats New 31 

Events and Clubs 49 

Ask BYTE 52 

Macintosh 335 

S-100 338 

Circuit Cellar Feedback 58 

Book Reviews 65 

Chaos Manor Mail 317 

BOMB Results and 
Next Month in BYTE 389 

Reader Service 391 

Address editorial correspondence to: Editor. BYTE. One Phoenix Mill Lane, Peterborough. NH 034 58. Unacceptable manuscripts will be returned if 
accompanied by sufficient postage. Not responsible for lost manuscripts or photos. Opinions expressed by the authors are not necessarily those of BYTE. 

Copyright © 1986 by McGraw-Hill Inc. All rights reserved, Trademark registered in the United States Patent and Irademark Office. Where necessary, 
permission is granted by the copyright owner for libraries and others registered with the Copyright Clearance Center (CCC) to photocopy any article 
herein for the flat fee of SI. 50 per copy of the article or any part thereof. Correspondence and payment should be sentdirectly to the CCC. 29 Congress 
St. 5alem. MA 0\9"J0 Specify \SSN 0360-5280/83. SI. 50. Copying done for other than personal or internal reference use without the permis- 
sion of McGraw-Hill Inc. is prohibited. Requests for special permission or bulk orders should be addressed to the publisher. BYTE is available 
in microform from University Microfilms International. 300 North Zeeb Rd.. Dept. PR. Ann Arbor. Ml 48106 or 18 Bedford Row. Dept. PR. 
London WC1R 4EI, England. 
Subscription questions or problems should be addressed to: BYTE Subscriber Service. P.O. Box 328. Hancock. NH 03449 



SECTION art by franck levy 

OCTOBER 1986 • BYTE 3 



Harry L. Brown 


Philip Lemmons 



Frederic S. Langa 

executive editor. bix 

George Bond 


Glenn Hartwig 


Steve Ciarcia 


Ezra Shapiro 
Bruce Webster 


Ion R. Edwards, Reviews 
G. Michael Vose, Themes 
Gregg Williams. Features 
technical editors 
Dennis Allen 
Richard Grehan 
Ken Sheldon 
George A. Stewart 
Jane Morrill Tazelaar 
Tom Thompson 
Charles D. Weston 
Eva White 
Stanley Wszola 


Curtis Franklin. Jr.. Best of BIX 
Margaret Cook Gurney, Book Reviews 
Brenda McLaughlin, Applications Software Reviews. 
San Francisco 


Bud Sadler. Chief 
Jeff Edmonds 
Faith Hanson 
Nancy Hayes 
Cathy Kingery 
Paula Noonan 
Warren Williamson 
Iudy Winkler 


Peggy Dunham, Office Manager 
Martha Hicks 
L. Ryan McCombs 
June N. Sheldon 


Gene Smarte, Bureau Chief. Costa Mesa 
Jonathan Erickson. Senior Technical Editor. San Francisco 
Rich Malloy Senior Technical Editor. Nw Yorfc 
Cindy Kiddoo, Editorial Assistant, San Francisco 


Dennis Barker. Microbytes 
Cathryn Baskin. What's New 
Anne Fischer Lent, What's New 


Jonathan Amsterdam, programming projects 

Mark Dahmke, video, operating systems 

Mark Haas, at large 

Rik Jadrnicek, CAD. graphics, spreadsheets 

Robert T. Kurosaka. mathematical recreations 

Phil Lopiccolo. computers in medicine 

Alastair I. W. Mayer, software 

Alan R. Miller, languages and engineering 

Dick Pountain. U.K. 

Roger Powell, computers and music 

William M. Raike, \apan 

Phillip Robinson, semiconductors 


Nancy Rice, Art Director 

Joseph A, Gallagher. Associate Art Director 

Jan Muller, Art Assistant 

Alan Easton, Drafting 


David R. Anderson, Production Director 
Denise Chartrand 
Michael J. Lonsky 
Virginia Reardon 


Sherry McCarthy. Chief 'typographer 
Len Lorette 
Donna Sweeney 


David Betz 
associate editors 

Tony Ijockwood 

Donna Osgood, San Francisco 


David P. Allen, Applications Programs 

Frank Boosman, Artificial Intelligence 

Leroy Casterline, Other 

Marc F. Greenfield, Programming languages and Tools 

Jim Howard, Graphics 

Gary Kendall, Operating Systems 

Steve Krenek. Personal Computers 

Brock Meeks, Telecommunications 

Barry Nance, New Technology 

Donald Osgood. Personal Computers 

Sue Rosenberg, Otlier 

Jon Swanson. Cnips 


Doug Webster. Dkector. (603) 924-9027 
Patricia Bausum. Secretary 
Brian War nock, Customer Service 
Denise A. Greene. Customer Service 
Tammy Burgess. Customer Credit and Billing 


Clayton Lisle, Director. Business Systems Technology. MHIS 
Bill Garrison. Business Systems Analyst 
Jack Reilly. Business Systems Analyst 
Linda Wolff. Senior Business Systems Analyst 


Dennis J. Riley. Director of Sales and Marketing 
Sandra Foster. Administrative Assistant 


Lisa Wozmak, Supervisor 

Lyda Clark, Senior Account Coordinator 

Marion Carlson 

Karen Cilley 

Wai Chiu Li. Quality Control Manager 

Julie Murphree, Advertising/Production Coordinator 


Horace T. Howland, Director (603-924-3424) 
Vicki Reynolds, Promotion Manager 
Lisa Jo Steiner, Marketing Assistant 
Stephanie Warnesky Marketing Art Director 
Sharon Price, Associate Art Director 
Wilbur S. Watson. Operations Manager. Exhibits 


Julie Perron, Market Research Analyst 

Cynthia Damato Sands. Reader Service Coordinator 


Michele P, Verville. Director 
Faith Kluntz, Copyrights Coordinator 


Philip L. Penny, Director of Finance and Services 

Kenneth A. King. Business Director 

Christine Lee. Assistant 

Vicki Weston, Accounting Manager 

Linda Short, D/P Manager 

Marilyn Haigh 

Diane Henry 

Vern Rockwell 

Lisa Teates 

JoAnn Walter 

publisher s assistant 

Beverly Jackson 


Officers of McGraw-Hill Information Systems Company: President: Richard B. Miller. Executive Vice Presidents: Frederick 
P. lannott. Construction Information Group: Russell C. White, Computers and Communications Information Group: 
. Thomas Ryan, Marketing and International. Senior Vice Presidents: Francis A. Shinal, Controller: Robert C. Violette, 
Manufacturing and Technology. Senior Vice Presidents and Publishers: Laurence Altman. Electronics Week: Harry L. Brown, BYTE: 
David J. McGrath. Construction Publications. Group Vice President: Peter B. McCuen. Communications Information. Vice Presi- 
dent: Fred O. Jensen. Planning and Development. 

Officers of McGraw-Hill. Inc.: Harold W. McGraw. Jr.. Chairman: Joseph L. Dionne. President and Chief Executive Officer: Robert 
N. Landes. Executive Vice President and Secretary. Walter D. Serwatka. Executive Vice President and Chief Financial Officer: 
She! F. Asen. Senior Vice President, Manufacturing. Robert I. Bahash, Senior Vice President. Finance and Manufacturing: Ralph 
R. Schulz, Senior Vice President. Editorial: George R. Elsinger. Vice President. Circulation: Ralph I. Webb Vice President and 
BYTE, BYTE . and The Small Systems Journal are registered trademarks of McGraw-Hill Inc. 

CIRCULATION (800-258-5485) 

Andrew Jackson, Subscriptions Manager 

Laurie Seamans. Assistant Manager 

Susan Boyd 

Mary Emerson 

Louise Menegus 

Agnes E. Perry 

Jennifer Price 

James Bingham. Single-Copy Sales Manager 

Cathy A. Rutherford. Assistant Manager 

Claudette Carswell 

Karen Desroches 


Cheryl Hurd. 0//ice Manager 
Patricia Burke. Personnel Coordinator 


Anthony Bennett, Building Services Manager 
Brian Higgins 
Mark Monkton 


Donna Healy 

Peterborough. New Hampshire 03458. (603) 924-9281. 

West Coast Offices: 42 5 Battery St., San Francisco. CA 9 4U1. 
(4151 954-9718; 3001 Red Hill Ave.. Building #1. Suite 222. Costa 
Mesa. CA 92626. (714) 5 57-6292. New York Editorial Office: 
1221 Avenue of the Americas. New York. NY 10020. 1212) 

BYTEnet: (617) 861-9764 (set modem at 8-1-N or 7-2-E; 300 
or 1200 baud). 


Circuit-Board-Artwork Software: 
- $895. And guaranteed. 

smARTWORK® lets the design 
engineer create and revise 
printed-circuit-board artwork on 
the IBM Personal Computer. You 
keep complete control over your 
circuit-board artwork— from start 
to finish. 

And smARTWORK® is reliable. 
When we couldn't find a pack- 
age that was convenient, fast, 
and affordable, we created 
smARTWORK® to help design our 
own microcomputer hardware. 
We've used it for over two years, 
so we know it does the job. 

That's why we offer every design 
engineer a thirty-day money- 
back no-nonsense guarantee. 

smARTWORK* advantages: 

□ Complete interactive control 
over placement and routing 

□ Quick correction and revision 

□ Production-quality 2X artwork 
from a pen-and-ink plotter 

□ Prototype-quality 2X artwork 
from a dot-matrix printer 

□ Easy to learn and operate, yet 
capable of sophisticated 

□ Single-sided and double-sided 
printed circuit boards up to 

10 x 16 inches 

□ Multicolor or black-and-white 

System Requirements: 

□ IBM Personal Computer, XT, or 
AT with 320K RAM, 2 disk drives, 
and DOS Version 2.0 or later 

□ IBM Color/Graphics Adapter 
with RGB color or black-and- 
white monitor 

□ IBM Graphics Printer or Epson 
FX/MX/RX series dot-matrix 

□ Houston Instrument DMP-41 
pen-and-ink plotter 

□ Microsoft Mouse (optional) 

The Smart Buy 

At $895, smARTWORK is proven, 
convenient, fast — and guaran- 
teed. Call us today. And put 
smARTWORK® to work for yourself 
next week. Try it for 30 days at 
absolutely no risk. That's smartwork. 

Wintek Corporation inquiry 327 

1801 South Street 
Lafayette, IN 47904-2993 
Telephone: (317) 742-8428 
Telex: 70-9079 WINTEK CORP UD 

A A 


L JL Ju J U c X jL J- 

In Europe contact: RIVA Terminals Limited, 
Woking, Surrey GU21 5JY ENGLAND, 
Telephone: 04862-71001, Telex: 859502 

"smARTWORK", "Wintek" and the Wintek iogo are 
registered trademarks of Wintek Corporation. 


Signs of Vitality 

Several recent and anticipated develop- 
ments point to signs of renewed vitality 
in the personal computer industry. Follow- 
ing are comments on some of these de- 

The Trend to Open Hardware 

The new Apple II GS featured on this 
month's cover has something the attrac- 
tive and compact Apple He was supposed 
to render obsolete: internal expansion 
slots. It is widely believed that the new 
Macintosh will have slots as well. Amiga 
developers expect a more powerful ver- 
sion of that machine with internal expan- 
sion slots. Expansion slots will make all 
these machines more adaptable and 
therefore more appealing. 

80386-based Computers 

The Intel 80386. described in considerable 
detail in our special issue (the Fall 1986 
Inside the IBM PCs) to be published later this 
month, is beginning to appear in personal 
computers. Programmers who have bat- 
tled the segment registers of the 8086 and 
80286 are rejoicing at the ability of the 
80386 to use a vast linear address space. 
Simplified memory addressing and 
greater raw computing power will at last 
make Macintosh-like applications perform 
at high speed on IBM PC-compatible ma- 

68020-based Computers 

A new generation of personal computers 
based on the Motorola 68020 will also ap- 
pear during the next several months. 
Apple is hard at work on an open-archi- 
tecture Macintosh. Commodore seems to 
be weathering its difficulties and is prepar- 
ing new versions of the Amiga. Some new 
Amigas are believed to have 68020s. Atari 
executives have often spoken of a 3 2 -bit 
UNIX workstation under development 
there. The 68020 will make this new gen- 
eration of machines far more powerful 
than current models. 

IBM's Need to Offer 
Something Better 

IBM's vulnerability to inexpensive IBM PC 
compatibles may force the industry leader 
to lead through superior technology. If 

IBM is forced to compete on the basis of 
new technology, computer users every- 
where will benefit. 

What exactly will IBM do? Most of the 
talk in the industry suggests a short-term 
approach featuring a new round of 80286- 
based PCs with an operating system that 
uses the protected mode and supports 
large memory. The new 80286 machines 
will bundle in everything provided on the 
best-selling combination boards today. 
IBM's new 80286 machines will raise the 
hardware standard for workhorse ma- 
chines but probably won't convince any- 
one that IBM has more to offer than other 
vendors— particularly if other vendors are 
selling 80386-based machines at prices 
comparable to IBM's 80286-based ma- 

More dramatic departures will come in 
IBM's 80386 machines— originally sched- 
uled for February 1 988 but now more like- 
ly to appear in mid-1987. The IBM 80386- 
based systems will incorporate a great 
deal of proprietary technology. According 
to one line of speculation, IBM actually 
has obtained the rights to the masks of the 
80386 and can extend the chip's func- 
tionality in proprietary ways. Speculation 
can run rampant on this theme. 

A second line of speculation says that 
IBM will equip its 80386 machines with 
ROMs and systems software that imple- 
ment the LU 6.2 and PU 2.1 protocols of 
the Systems Network Architecture (SNA) 
standard. These protocols support peer- 
to-peer communications, as distinguished 
from host-to-terminal communications. 
Large corporations that own IBM main- 
frames would love to have IBM solve the 
problem of connecting PCs, minicom- 
puters, and local area networks to main- 
frames in a convenient way. Bundling LU 
6.2 and PU 2.1 would help. The protocols 
are complex enough that other compan- 
ies would need at least a year to imple- 
ment compatible systems. This would give 
IBM a big advantage in the corporate 

Success in the Home 

In the eyes of some, the failure of the IBM 
PCjr doomed the market for home com- 
puters. But significant stirrings are again 
occurring in the home computer market. 

The software house Electronic Arts, which 
has never lost its faith in the home com- 
puter, saw its revenues grow 55 percent 
in 1985 and another 100 percent in 1986. 
The landy 1000 EX is the first of a new 
kind of IBM PC compatible intended for 
the home. Highly compact attractively 
packaged, and relatively inexpensive, this 
machine will be an appealing home com- 
puter for people who use a desktop PC 
compatible at work. (For more details, see 
What's New, page 31.) 

Open systems, the arrival of personal 
computers based on the 80386 and the 
68020. a new line of workhorse machines 
from IBM, pressure on IBM to offer end 
users valuable new technology, and even 
signs of life for computing in the home- 
all these will make the next year a water- 
shed in personal computing. We'll do our 
best to keep you abreast of changes. In 
addition to coverage here in BYTE, we will 
host events on BIX for interactive discus- 
sion of new developments. 

BIX Events for October 

The following special conferences will take 
place this month: The Apple II GS: First 
Users' Early Impressions: New Generation 
Laptops: Compatible Computing on the 
Go; The IBM RT PC: Which Niche for 
RISC?: Publishing Your Own Software; and 
Macintosh in the Sciences. 

— Phil Lemmons 
Editor in Chief 

Free BIX Time for Apple II GS Owners 
If you're an owner of the new Apple, 
you may be eligible for a free BIX 
membership and 10 free hours of con- 
nect time. The only qualifications are 
that you have accepted delivery of an 
Apple II GS; that you are willing to 
share your experiences with the new 
machine by participating in this 
month's BIX Special Event on the II GS; 
that you can provide your own modem 
and telecommunications software; and 
that you are one of the first 10 persons 
to call in response to this announce- 
ment, lb participate, please call Associ- 
ate lechnical Editor Curt Franklin at 
(603) 924-9281 during normal East 
Coast business hours. 


vWaLllk \ ** 

St.'' '. f; . ■,:'.'.. ' ;'^.,. vT- ;; 

' ! '■** 

ti X 







When computers get down to business, they move up to Maxell. 



Maxell was first to provide 
you with a 5V4" high density 
floppy disk. Just another 
example of how we keep 
you a step ahead. 



Maxell Corporation of America, 60 Oxford Drive, Moonachie, NJ 07074 


The Communications Software 

That Knows You Can't Ignore Evolution 

rhe world of computing has 
much in common with nature: 
Those who adapt to their en- 
vironment flourish. Those who 
can't— go the way of the dinosaur. 

If your computing environment 
includes mini computers, you can 
access them using standard terminals. 
But the smarter alternative is an 
IBM* compatible PC* and SmarTerm 
terminal emulation software— an 
advanced species of communications 

Persoft began where most terminal 
emulation software companies strive 
to end— with exact, feature-for- 
feature emulation. Then Persoft 
took SmarTerm software to the next 
stage of evolution: superiority. 

SmarTerm 240, the latest in the 
SmarTerm series, not only provides 
the ReGIS* and Tektronix* graphics 
capabilities of a DEC* VT240* terminal, 
but adds capabilities that are only 
possible through the power of a PC, 

Features like error-free data transfer 
(using Kermit or XMODEM protocols), 
on-line help screens, remappable 
keyboard layouts, and programmable 

SmarTerm 240 is just one example of 
the most advanced line-up of DEC, 
Data General and Tektronix terminal 
emulation software in the industry. 

Make the "natural selection." Ask your 
local dealer about SmarTerm terminal 
emulation software. Or contact: 

Persoft, Inc. 

465 Science Drive 

Madison, WI U.S.A. 53711 

(608) 273-6000 

Telex 759491 

Visit Booth #8624 
Hilton Pavillion West 
COMDEX/Las Vegas 

SmarTerm Terminal Emulation Software 
. . . The Natural Selection 

'SmarTerm is a registered trademark of Persoft, Inc. IBM and IBM PC are registered trademarks of International Business Machines Corporation. DEC, VT and ReGIS are trademarks of Digital Equipment 
Corporation. Tektronix is a registered trademark of Tektronix, Inc. Persoft, I98G. All rights reserved. 


Staff-written highlights of developments in technology and the microcomputer industry. 

Bell Labs Develops Optical Logic Device, 
Draws Nearer to Light Beam Computer 

The staff of the optical research department at AT&T's Bell Labs (Holmdel, NJ) reports 
they've drawn closer to building a computer that uses light beams instead of electrical 
signals. Alan Huang, division head, claims electronic computers are outrunning the 
capabilities of integrated circuits; an alternative technology would process data with optical 
rays rather than electrical impulses. An optical computer could conceivably run 1000 times 
faster than conventional electronic machines. 

One of the biggest obstacles Huang and crew faced was coming up with a device that 
could control light beams the way transistors control electrical signals. But that problem was 
at least partially solved when Bell Labs developed a breakthrough optical logic device. 
Called a SEED (self electro-optic effect device), the optical transistor functions as a NOR 
gate and, according to Huang, matches electronic logic elements in speed and power. The 
chip is made of gallium arsenide and aluminum gallium arsenide. 

Huang, who's examining alternatives to electronic elements, says that while extensive work 
remains, his group hopes to build a functional optical computer within three years. 

Softguard Working on VM Operating System for the 80386 

What do you do if your company's premier software product (in this case, copy-protection 
systems) is becoming increasingly less popular with both users and manufacturers? Well, if 
you're part of Softguard Systems (Santa Clara, CA) and you're a former IBM mainframe pro- 
grammer, you try to get your favorite operating system, VM, running on a microcomputer. 

By the second quarter of next year, Softguard hopes to have available for the new 
80386-based machines a virtual operating system very similar to that of IBM's VM main- 
frame. The system will be able to play host to several other operating systems, including 
MS-DOS and UNIX, and run multiple copies of each of these at the same time. The system 
should also be able to emulate extended memory systems. Thus, according to Softguard, 
the VM system will obviate the need for a multitasking version of MS-DOS that can break 
the 640K-byte memory barrier. 

Modeled after IBM's VM/3 70, the system should be able to run on several of the new 
80386-based computers, expected to be available shortly. It should also be able to run on 
80386 speedup boards for the IBM PC, XT, and AT. Softguard will make its VM system 
available only to OEMs, but the company expects the end user to pay under $200. 

Commodore Improving Amiga Chips; 
Has Redesigned Genlock 

Jay Miner, general manager at Commodore-Amiga (Los Gatos, CA), says the company is 
working on an improved version of the Agnus and Denise chips, two of the three custom 
chips in the Amiga 1000 that provide many of its advanced features. The improved chips 
will not work in existing Amigas but will be used in a future Amiga-family machine. 

The Agnus chip is being upgraded to address 2 megabytes of display memory (the 
memory that must be used to store all video images) independent of the expansion 
memory. The current Agnus controls 512K bytes of memory. The bimmer (bit-mapped im- 
age manipulator) in the Agnus chip will be able to address 4K pixels at one time, up from 
the current chip's IK-pixel capability. The new Agnus and Denise chips will also support 
higher-resolution, noninterlaced graphics. 

Commodore-Amiga has also redesigned its Genlock peripheral to meet FCC radio- 
frequency interference specifications. (Genlock enables the Amiga's display to overlay an 
external video signal.) Barring production problems the firm expects to have the product in 
the stores by November. 



MIT's Media Lab Produces Holographic Image 
Generated by Computer 

The Media Lab at the Massachusetts Institute of Technology (Cambridge) has demonstrated 
a small monochromatic hologram of a car. While the hologram in itself is not exactly ex- 
traordinary, the car is: It was entirely computer-generated. The so-called "synthetic 
hologram'— a hologram not of an actual object, but of a computer-generated model of an 
object— was created by interpolating 130 different views of the car onto a piece of film. 

After the film was exposed, it was processed into a semicylindrical hologram, which al- 
lowed observers to look at the image from any point within a 180-degree viewing angle. 
Stephen Benton, associate professor of media technology at the lab's Spatial Imaging 
Group, described the image as "completely projected into space, suspended." He said the 
technology involved will someday let architects show buildings in true 3-D instead of on a 
flat drawing board and let surgeons examine images of body parts before operating. 

According to Tim Browne, associate director of the Media Lab, a significant amount of 
development work remains to be done. The researchers hope to shorten the processing 
time of the hologram to 24 hours. The process currently requires approximately one week. 

They also hope to enlarge the dimensions of the image from its present 8-inch by 4-inch 
size to something large enough to represent a human body. Other goals include adding full- 
color images (the car demo is green), 360-degree viewing, and transporting the graphics 
imaging software to a personal computer. 

The researchers expect that a commercial implementation of the technology may be 
ready within five years. 

Manhattan Graphics Claims Desktop Publishing Package 
Signals "Next Generation" 

Manhattan Graphics Inc. (Valhalla, NY), maker of the Ready Set Go page-maker package, is 
working on what it says will be a "next generation" advance in a Macintosh desktop 
publishing program. The firm hopes to release the software before Christmas. "Basically it's 
a major extension of WYSIWYG |what you see is what you get) for desktop publishing," said 
Ken Abbot, company president. Some packages have a preview mode that lets you view a 
document in WYSIWYG format before printing. The Manhattan Graphics program will have 
only one mode, which always provides a WYSIWYG display. 

"We see the future for desktop publishing in having one mode |so that] you work with a 
simulation of the thing |you want to producel at all times," Abbot said. "The question of 
one mode is how far you can go and still get professional typographical features." 

The forthcoming package is capable of word wrap and hyphenation in real time and in six 
languages; it will let you choose a range of text and change it from English to Spanish, for 
example, on the fly (with a menu selection) and have it all fit in the document according to 
the design parameters in place. The company is considering porting the program to other 
workstations and to IBM PC AT-style machines under Windows. 


A spokesperson at Microsoft (Redmond, WA) said the company's next-generation operating 
system for personal computers will have a special high-bandwidth interface to keyboard, 
mouse, and video. Besides a very high-performance subsystem for user interaction, the 
operating system will provide networking in a transparent form that can always be present 
in the background. . . . Sources within Motorola's microprocessor group (Austin, TX) con- 
firm that two new central processing units will be released by that company in the near 
future. Slated for autumn arrival is the 68030, an integrated version of the 68020 micro- 
processor. This chip reportedly will include a memory management unit and a math 
coprocessor. Due in the first quarter of next year is the 20-MIPS 78000 CPU. Sources said 
the 78000 is a RISC processor that represents an evolutionary progression of the 
68020. . . . AT&T Technology Systems (Berkeley Heights, NJ) has developed a chip it says 
is key to implementing an integrated services digital network (ISDN). The new chip, called 
UNITE, can be used by any builder of telecommunications equipment. It will allow fully 
digital transmission and reception of voice, data, video, hi-fi audio, and other types of com- 
munications over the same wires that carry regular phone calls. ... A reliable industry 
source says IBM may attempt to stave off compatibles companies by implementing its SNA 
in ROM in its new personal computers. IBM could then extend its operating system to take 
advantage of the ROMs. According to the source, builders of PC compatibles would have 
trouble developing comparable systems quickly. The SNA implementation would simplify 
connecting IBM's microcomputers with its larger machines. 

10 B YTE • OCTOBER 1986 

\fenTel clears 
the path 

to 2400 baud. 

Trying to install a 2400 baud modem in your PC can make you feel 
like you're trying to get through a maze. 

With most 2400 baud modems, you'll wade through pages of docu- 
mentation . . . only to learn that you must set dozens of parameters 
and reconfigure your software. Even buy all new software. 

Ven-Tel 2400 baud modems eliminate the barriers. Just plug one 
in, and you're ready to transmit your data twice as fast. Using whatever 

software you're using today: 
Choose Ven-Tel 2400 baud 
modems in either our convenient 
desktop, or Half Card" internal, 
versions. Each requires minimal 
installation and will automat- 
ically connect with 1200/300 
baud modems and services. 
And each is available with 

or without X.PC error 
a correction built-in. 
Like all of our PC 
products, Ven-Tel 
2400 baud modems 
are backed by a free 
five-year warranty. 
No other major 
manufacturer even comes close. 
So when you decide to shift into high gear, . 
do it with a Ven-Tel 2400. We give you the speed 
you want— without making you work for it. 



Our free 24-page booklet, "How to Select The Correct Modem" contains specific 
information about our full line of Ven-Tel 1200 and 2400 baud modems. To request your copy, 
call 800-538-5121. In California, call 408-727-5721. 

Inquiry 316 


America grew up listening 
to Packard Bell radios. 
Then Packard Bell tele- 
vision entertained the 
nation. Today Packard Bell 
has launched the pro- 
ducts that provide 
American business 

The VT 286 Business Computer. 

PC/AT compatible. Ultra fast, ultra reliable 

with a faster, more powerful, 
more reliable computer system. 
A total business 
system solution. 
A solution capable 
of expanding, 
and of keeping 
pace with 

software developments. It is 
a system so versatile it will 
optimize the hardware and 
software the user may have 
already invested in. It is, in- 
deed, a total 

The EGA Color Monitor. Super high resolution. 
64 color capability. EGA, CGA, MGA compatible. 


In 1986 it stiU does. 

As the future unfolds, 
Packard Bell will continue to 
develop the products and ser- 
vices needed by the business 
and professional user. Products 
that perform reliably, economic- 
ally, and deliver 
the value 
not often 

The 1200 or 2400 bps modems are Hayes compatible. 

by major manufacturers. 

America began listening to 
Packard Bell in 1929. Since then 
Packard Bell has become a 
familiar name... a name that 
has stood for 

qualify It JT 3 ™ ^ 
still does. It 
always will. 

The high speed laser printer provides superb letter 
quality at the rate of 8 pages per minute. 


America grew up listening to 
Packard Bell. It still does. 

For more information call toll free: 
1-800-521-7979 or 1-800-327-4499 
6045 Variel Avenue 
Woodland Hills, CA 91367 
(818) 704-3905 

Hayes is a registered trademark of Hayes Microcomputer Products. Inc. 

IBM PC and AT are trademarks «f International Business Machines Ctrptratitn. 

Inquiry 22 2 for End-Users. Inquiry 223 for VARS. 


Screaming Computers 

In all the discussions about the possible 
health hazards of VLTTs. 1 have seen no 
mention of what is, forme, an obvious and 
serious discomfort: the piercing audio 
shriek that is emitted by all standard VLTTs. 
Apparently, most people cannot hear this 
1 5.75-kHz whistle. I belong to the minor- 
ity that avoids certain intersections where 
"ultrasonic" motion detectors are de- 
ployed and that gets headaches in airports 
due to the VLTTs that are hanging every- 

Engineers who design VLTTs. switching 
power supplies, security systems, and so 
on— please remember that some people 
do hear all the way to 20 kHz. Please 
design things so as to lessen the emission 
of high-frequency audio waves (stiffer 
flyback transformers?). And please hurry 
up the transition to higher-resolution 
video, which is linked to higher scanning 
rates. For example, the 35-kHz scanning 
rate in the Atari ST monochrome monitor 
was a major factor in my decision to go 
with that system. Having gotten used to 
it, 1 can hardly believe that 1 used com- 
puters at all before. 


Ithaca, NY 

Horizontal Sync 

While trying to prepare myself for the 
shock that will surely accompany my first 
telephone bill after I start using BIX, I have 
been reading the Best of BIX section with 
great interest. 

I own an Atari ST and was interested to 
read that Dave Menconi (July, page 399) 
was having thesame problem! had a cou- 
ple of months ago. The monochrome 
monitor often moves the screen horizon- 
tally, so that one side of the screen wraps 
around to the other side. 

This is not a problem with the ST but 
with the monochrome monitor. It is easily 
fixed by opening up the monitor and twid- 
dling a small pot marked "Horizontal 
Sync." For accuracy, this is best done when 
the monitor is on and connected to the 
ST. Of course, this can be dangerous 
unless extreme care is taken. A plastic 
screwdriver is essential. The adjustment 
could also be made on a trial-and-error 
basis when the monitor is off. It would 

then be turned on to test the position of 
the screen. 

1 have just completed my first piece of 
commercial software for the ST series and 
1 could certainly have used the help of the 
BlXen during the early days. 1 hope to be 
BlXing soon! 

Andrew R. Bennett 

Harrogate, North Yorkshire 

United Kingdom 

of Programming 

May I commend you for your selection of 
"Mathematics of Programming" by 
C. A. R. Hoare (August). In addition to the 
specific points made (lucidly!) by the 
author, it provides some hope that what 
good analysts and programmers know in- 
tuitively can someday be taught to future 
toilers specifically. 

Hoare's approach would be a significant 
addition to (and in many instances a sub- 
stitution for) the variety of mathematical 
and logical courses now provided would- 
be analysts/programmers. Many of the cur- 
rent courses are merely dogmatic exer- 
cises in complexity. 

Seth S. Grossman 
Delmar, NY 

of Music 

We are glad to see that Charles Dodge and 
Curtis Bahn ("Musical Fractals," June) have 
made it known to your readers that frac- 
tal mathematics is not limited to the graph- 
ics screen. We would like to add that there 
are a great many possibilities not touched 
upon in that article. 

In 1 98 1 , Hologramophone Research was 
formed for the purpose of exploring the 
possibilities of computer-assisted music. 
Since then, with the help of the ideas of 
Benoit Mandelbrot (The Fractal Geometry of 
Nature) and Douglas Hofstadter (Goedel, 
Escher, Back An Eternal Golden Braid) we have 
discovered many ways to take advantage 
of music's inherent mathematical nature. 
The computer can be programmed to frac- 
talize real-time acoustical events in any 
number of ways, so it is valuable as an im- 
provisational (as well as a compositional) 

We have found that much of the great 
music in history can be described by sim- 
ple fractal formulas, right down to the 
sounds the instruments make. We believe 
the fractal concept to be responsible for 
much of the beauty in nature, and we ex- 
pect that the next generation of syn- 
thesizers will embody a deeper under- 
standing of these possibilities. We would 
be delighted to correspond with any of 
your readers who are interested in this 
field, which, though small, presents 
boundless potential. 

Justin Parker 

Peter McClard 

Hologramophone Research 

316 Sena St 

Santa Fe, NM 87501 

Updates for ATOMCC 

The response to my article "The ATOMCC 
Toolbox" (April) has been good. Many 
have approached me for the source code 
of the program. There must be many more 
who have obtained the executable and ob- 
ject files from BYTE. 

The purpose of this letter is to inform 
users of ATOMCC that I have found and 
fixed several important bugs. Of course, 
all programs of such size will have some 
bugs, and perhaps some users will simply 
work around them. However, some of the 
bugs are rather severe. 

Bug #1 

While doing research on differential- 
algebraic equations (DAEs), I found that 
the ATOMCC compiler did not properly 
search all the binary tree branches for cer- 
tain types of equations. For example, the 
following input equations will produce 
messages of "undefined operator number 


LETTERS POLICY: To be considered for publica- 
tion, a letter must be typed double-spaced on one 
side of the paper and must include your name and 
address. Comments and ideas should be expressed as 
clearly and concisely as possible. Listings and tables 
may be printed along with a letter if they are short 
and legible. 

Because BYTE receives hundreds of letters each 
month, not all of them can be published, letters will 
not be returned to authors. Generally, it takes four 
months from the time BYTE receives a letter until 
it is published. 




Looking for a lower priced, higher 
quality PC/AT compatible than our new 
A*Star™is like looking for a needle in 
a haystack. You're more apt to come up 
with a case of hayfever. 

A* Star gives you features you 
won't get from any other vendor. Not 
IBM. Not Compaq. Not even those for- 
eign manufacturers. Features like a 220 
watt power supply, eight available ex- 
pansion slots and "network ready" 
multi-user operation. All for only $1495. 
And that price includes a 1.2MB dis- 
kette drive, 512KB memory, a fixed 
disk /diskette drive controller, a tactile 
feedback keyboard (you'll love it!) and a 
6/8MHz switch /software selectable 
80286 CPU. 

Best of all, A* Star is quality built 
right here in America by Wells Ameri- 
can Corporation - an American Stock 
Exchange manufacturer. So now you 

can buy with confidence from a vendor 
you can trust, just like you've trusted 
IBM. And you'll get a genuine, top qual- 
ity product (not a cheap imitation) for a 
price even less than those "questionable" 
mail order clones. And if that's not enough, 
it's all money-back guaranteed! 

The $1495 Wells American A* Star. 1 

A PC/AT FOR ONLY $1495? 

[Hurry! This offer is limited.] 

□ I'm tired of sneezing! Have someone call 
me immediately to take my order. 

□ A* Star sounds terrific. Tell me more. 






State: Zip: 

A Wells American 

^F 803/796-7800.TWX 510-601-2645 
Sunset Boulevard • West Columbia, SC 29169 

IBM. Personal Computer AT and AT are trademarks of International Business Machines Corporation 

Inquiry 3 19 




1 » 2. m 

Super Power 

The POWER SYSTEM™ from PECAN has set a new standard for comprehensiveness in program 
development environments that you won't find anywhere else: 

PORTABILITY: Whether you're an ardent beginner or a seasoned pro, THE POWER SYSTEM lets 
you design software that can run on virtually any mini or micro without having to rewrite the program. 
The program you write on one computer will operate on another— even if the two hardware systems 
are incompatible . Your software never becomes obsolete — even if your hardware does. 

INTEGRATABILITY: The versatility and flexibility of THE POWER SYSTEM enables different users to 
exchange program modules freely with one another, even though the modules may be written in different 
programming languages. 

LANGUAGE INTERCHANGEABILITY: THE POWER SYSTEM lets you customize the modules of 
your application in the most appropriate of Pecan's powerful languages including UCSD PASCAL, 
BASIC, FORTRAN-77, ASSEMBLER, or MODULA-2. Once you've created your multi-language program, 
the modules are linked automatically. The application then runs as if you'd written it all in one language. 



popular 8/16/32 bit systems. Also available in VAX, UNIX, PDP-11 OS's & others. 

THE POWER SYSTEM includes the language of your choice: UCSD PASCAL, MODULA-2, BASIC, 
ASSEMBLER and FORTRAN-77. Choose an additional language for only $79.95. Buy three and we will 
send you a fourth one FREE! 

To custom-tailor software, PECAN offers such programming tools as: 









Write for complete list of development aids. 

ATTENTION CORPORATIONS: Call and ask about our training seminars. 
SCHOOLS: Special Educational Discounts 


Mail Your Check Or Money Order To: 

Pecan Software Systems, Inc. 

1410 - 39th Street 

Brooklyn, New York 11218 

(718) 851-3100 

in TELEX NUMBER: 494 8910 


The UCSD Pascal Company 


(NYS) 1-800-45-PECAN 

Please add $2.50 for shipping within the US. Foreign orders add $10.00 and make payment by bank draft 
payable in US dollars on US bank. New York State residents add appropriate sales tax. 
UCSD Pascal is a trademark of The Regents of University of California. 
Inquiry 232 

O" and gaps in the object program: 

DIFF(X,T,1) = X*X 

Y = 2*(X + 1 + EXP(-T))/X 


The tree for the second equation is as 
shown below, where all the nodes are 
circled and labeled a to g. The original 
processing saved all the right branches as 
nodes and processed the left branches as 
it went along. Therefore, the nodes 
pushed down on the stack (MSTK) are. in 
order, b, d. and e. The correct order of 
processing sequence is f. g. e. d. c. b. and 
a. However, since node c was not saved 
on the stack, the actual processing was c. 
g. f. e. d. b, and a. which created havoc. 

Figure 1: Ttee for Y=2*(X+1+EXP(-T))/X. 

The result was that e did not compile 
properly, and errors were produced in the 
object code. 

The fix is to force saving onto a stack 
all the nodes of the binary tree. A subrou- 
tine within ATOMCC called FORMAT has 


/^^^n expert system is like borrowing someone else's 
g experience and expertise on a given subject. 
/ is exactly that, an expert system on the subject of 
* computers. 
It's not software based, so it can't crash. And since it's not 
machine-specific, it won't become outdated easily which means 
you'll find it an invaluable, long-lived reference whether you have 
an IBM®PC, an Apple He®, a multimillion dollar Cray®, or no 
computer at all right now. 


UNDERSTANDING COMPUTERS s a new series of books that 
presents computers in a unique, broad-based way, unlike any other 

computer book you've ever seen. It 
gets "under the hood," right down 
to the nuts and bolts of computers 
to explain what you need to know 
about them in plain English. 

The first volume, Computer Basics, 
unwraps the mystery of writing 
binary code ... the concept of logic 
gates . . . how chips are designed . . . how a light pen works for 
graphic ef f ects . . . the sequence of events in a computer from the 

first clock pulse to the last. And much, much more. ... 

Succeeding volumes cover Software. Input/ 
Output. Graphics. Networking. The entire gamut of 
computer topics. 


Not only does UNDERSTANDING 
COMPUTERS give you all the 
computer background you 
want that you won't find 
elsewhere, it also shows you 


carried by pits and spaces, 
which are read by a laser beam. 




How a transistor 
operates as a switch. 

what it's all about. Full-color illustrations help make every concept 
crystal clear. And glossaries of terms help ensure your understand- 
ing. Each volume is a big 9V4" x 11 V6" hardcover book with 
approximately 128 pages. 


Begin to expand your computer know-how 

now by examining Computer Basics for 10 

days free. Keep it and pay only $12.95 

($15.95 in Canada), plus shipping and 

handling. Then you can continue to receive 

other volumes every other month, always 

with a 10-day free trial. Keep only the books you want. 

And you can cancel any time. Or return Computer Basics and 

owe nothing. 

Return the coupon today, and start to bridge the gap from 
computer buff to computer expert. 

IBM is a registered trademark of International Business Machines Corporation. Apple lie is a registered 
trademark of Apple Computer, Inc. Cray is a registered trademark of Croy Research, Inc. 
© 1986. Time-Life Books Inc. Time & Life Building, Chicago, IL 60672-2058 


I CTADTCUEDE Mail to time-life books, inc. 

9 IAK I 9 nEKEt Time & Life Building, 

Chicago, IL 60672-2058 

YES! Send me Computer Bosics, as my introduction to the 
shelf-based expert system, UNDERSTANDING COMPUTERS. 
I aqree to the terms outlined in this ad. 


j Name 



Computer Basics 


State or Zip or 

Province Postal Code 

All orders subjectto approval. Price subject to change. 






Inquiry 190 



Atari ST • Amiga • QL 

lattice® c 

The well known LATTICE® C compiler, full featured 
portable implementation. 


An ISO/ANSI standard Pascal. A fast single pass com- 
piler, ideal for commercial, educational and personal 


A professional standard macro assembler with many 
powerful features. 


LISP interpreter/compiler providing a complete LISP 
development environment. Now available for ST. 


A powerful compiler offering the convenience of a high 
level language with the flexibility of an assembler. 


UNIX™ compatible MAKE utility with extended func- 


Versatile programming environment with full screen 
command line editing. 


The best selling menu generator for the Atari ST. 


Provides useful tools and utilities including Librarian 
and Disassembler, from the people who wrote 

Atari™ Commodore™ 






Lattice C 

















$149. 95* 




$69.95 * 
















Cambridge LISP is also available for CP/M-68K™ 
OL Lisp includes interpreter only 

All languages come with full documentation, libraries & 
screen editor. Languages for the ST come with MENU+ 
and provide full interlaces to GEM VDI and AES functions. 


The Quality Source for 68000 Software 

5353 #E Scotts Valley Dr., Scotts Valley, CA 95066 
Contact your local dealer or call: 

(US) 800-AKA-META (CA) 800-GET-M ETA 

BIX: mhill 
Eur (UK) 44-272-428781 Telex (UK) 444874 

Add 6.5% tax if CA resident. "■" ££=„) 

Registered trademarks: '- 

Lattice - Lattice Inc; Amiga and AmigaDOS - Commodore-Amiga 
Inc.; Atari ST - Atari Inc.; CP/M-68K - GEM Digital Research 
Inc: UNIX - Bell Labs. 

been rewritten. The processing is now 
done correctly without missing any node. 
You can work around this bug by break- 
ing up the second equation into smaller 
parts, such as shown below. You must 
simplify any equation that may invoke the 
error message as given above. 

D1FF(X,T,1) = X*X 

Y = 2*PARTA 


PARTB = (X + 1 + EXP(-T)) 




Bug #2 

Jet Propulsion Labs has had a copy of 
ATOMCC for over a year, and mathemati- 
cians there have made some extensive 
comparisons of this method with other 
methods. They have produced a paper on 
this subject. The bug in question here 
arose when they tried to submit the en- 
tire solar system including relative correc- 
tions to ATOMCC. There were over 900 
equations. As anyone doing H-body prob- 
lems knows, in such problems there are 
many exponentials such as (Sun - 
Earth)** 2. 

When ATOMCC was first written, we had 
planned on only a handful of these ex- 
ponentials. So, the design was to move a 
certain stack for triplets (MTRPL) up by 
50 to make room for these exponential 
functions. When this number of 50 was ex- 
ceeded by JPL. the triplets on the stack 
wrote over onto themselves and produced 
an infinite loop. 

The fix is to use another stack for the 
input stream (1NOUT2), which happens to 
be the same size as (MTRPL) and which 
contains the input stream that can be dis- 
carded at this stage. Thus, the new design 
can handle as many of these exponentials 
as the user may wish to enter. For users 
who need to solve very large systems of 
equations, there is no way to work around 
this bug. 

Bug #3 

While working on the other bugs, I 
decided to test the implementation of 
some of the functions. One of them 
proved to have an error. There was a mis- 
alignment in the output code for the arc 
tangent function. If you wish to use the arc 
tangent function, you must obtain the new 
version of ATOMCC. 

Bug #4 

In testing ATOMCC. Jet Propulsion Labs 
used a certain parameter (HMAX) to con- 
trol the accuracy of the results. JPL had 
an earlier version of ATOMCC that re- 
tained this parameter. 

Once I got wind of this. I realized that 

there was a bug in the RDCV subroutine. 
The accuracy of the results produced by 
ATOMCC is properly controlled only by 

The algorithm in the RDCV subroutine 
comprises three parts. The first part, called 
three-term analysis, is used to calculate the 
position and order of a singularity on the 
real axis. The second part, called six-term 
analysis, is used to calculate the position 
and order of a pair of conjugate singular- 
ities in the complex plane. 

The third part, called top-line analysis, 
is used to estimate the distance of a simple 
pole with unknown position and order. 
The first two analyses are based on sound 
fundamental mathematical bases. The top- 
line analysis is only an estimate. This 
estimate is used only when the other two 
analyses fail. 

When the parameter HMAX is used to 
limit the step size and control the error, 
the effect is only to reduce the step size 
when top-line is being used, because the 
step size is large only when the solution 
point is between singularities and the 
other analyses fail. Therefore, there must 
be an error in top-line. This is a severe 

The fix is to completely rewrite top-line. 
You can raise the parameter MPRINT to 
6 or 8 and observe whether top-line is be- 
ing used appreciably If it is being used 
a lot, the accuracy of the results is in 
doubt. You must then obtain the new ver- 
sion of ATOMCC. This leads to the next 

Bug #5 

The version of ATOMCC mentioned in 
the article was version 7.10. It contained 
a significant advancement over previous 
versions in that stiff equations could be 
solved. As mentioned in the user manual, 
stiff equations are solved only in double 
precision. What I am leading up to is that 
I have left a developmental flag in the 
DRDCV subroutine. This is sort of like a 
mechanic leaving a screwdriver inside the 
air conditioning duct propping open an 
air valve. 

What was the purpose of this flag? It was 
used to bypass the three-term and six- 
term analyses. What is the result? The 
result is that only top-line is being used 
in this subroutine. Examples 3 to 17 of the 
user manual will not yield any result in 
double precision. Since three-term and 
six-term analyses are bypassed, therefore, 
in double precision, version 7.10 of 
ATOMCC has poor error control as ex- 
plained above. This is the most severe 
bug. The user must obtain version 7.20 if 
there is much intent to solve problems in 
double precision. 


18 B YTE • OCTOBER 1986 

\\.V%X" * 

: /isf.; 

* " 


LO Meets EGA 

Announcing The AST-3G Pak™ For 
Single-Slot EGA Graphics And I/O. 

AST-3G Pak packs it all... complete 
four-mode graphics and popular 
input/output features a 

An Idea Whose Time has Come. 

The AST-3G Pak is designed for new 
IBM® PC XTs, and is compatible with 
the entire IBM PC/XT/AT family. It 
saves valuable slots within your PC 
by combining parallel, serial and 
optional game ports, battery-backed 
clock/calendar and full-function 
graphics onto a single board. 

And AST-3G Pak does it all at a 
price that's competitive with two- 
board graphics and I/O combinations! 

All Graphics Standards. Four- 
mode graphics means compatibility 
with every major PC graphics 

standard. There's EGA (Enhanced 
Graphics Adapter), CGA (Color 
Graphics Adapter), Hercules " 
Graphics and MDA (Monochrome 
Display and Printer Adapter) modes. 

So whether you need simple 
monochrome graphics or advanced 
state-of-the-art graphics capabilities, 
AST-3G Pak is the right solution 
Jbr you. 

Free Graph-In-The- 
Box IM Software. Another 
AST extra, Graph-In-The- 
Box lets users pull data 
from spreadsheet, word 
processing and database 
applications to generate 
on-the-spot graphs and charts. 

AST-3G Pak-The Winning 
Graphics and I/O Combination. For 

more information call our Product 

Information Center at (714) 863-1480 

or send the coupon to: AST Research, 
Inc., 2121 Alton Avenue, Irvine, 
CA 92714-4992. 

AST-3C IMk tr.nlcm.trk of AST Kesearch, Inc.lHM registered trademark of iSusiness M.ichtnes Corp. Hercules trademark of Hercules 
Computer Products, Inc. Cr.iph-In-The-Hox ir.nlem.irk of New liiigl.incf 
Sollw.ire. Copyright < 19K6 AST Research, [lie. All rii;hl reserved. 


Yes, send me more ^^ 
information on the AST-3G Pak today! 

Name: _ 
Title: _ 

Company: _ 



Zip: . 


Send to: AST Research, Inc., 2121 Alton Avenue, 
Irvine, CA 92714-4992 B5CPK06S-A1 


Added Features 

Since let Propulsion Labs expressed a 
desire to solve systems of more than 900 
equations. I have made some changes in 
ATOMCC to accommodate. If the user has 
sufficient memory capacity (at least a 
megabyte of RAM would be required), he 
can use ATOMCC version 7.20 to solve 
up to 9000 equations or perhaps even 

Version 7.20 also has an automatic 
KTRDCV feature where only those 

variables with the smallest radii of con- 
vergence are fully analyzed in the sub- 
routine RDCV. This yields an appreciable 
savings of computational time in instances 
when the system of equations to be solved 
is large. 

Another added feature is where the 
ATOMCC compiler prints out the amount 
of internal stack spaces being used for 
each problem versus the total stack spaces 
available. The user can then see just 
how much resource is used and how big 

a problem 

can be solved by using 

Y. F. Chang 
Claremont CA 

FoxBASE wins the dBASE race! 

6.43 times faster than dBASE III PLUS 

New FoxBASE* sweeps the field: runs 2.26 times 
faster than Clipper, 6.69 times faster than dBCOMPILER, 
and 10.86 times faster than dBMAN! And FoxBASE 
compiles programs up to 60 times faster than other 

The others aren't even close! 

New FoxBASE+ is totally compatible with dBASE III PLUS 
as is original FoxBASE with dBASE II. No changes in 
your present programs, databases, screens, or reports! 

Though FoxBASE is a super-fast compiler, it offers the 
familiar, user-friendly interactive features of dBASE and 
the full power of "dot prompt" mode plus many signif- 
icant enhancements. 

FoxBASE is available in single and 
multi-user versions for MS-DOS, 
,i XENIX, UNIX, many net- 
works, and other envi- 

I ronments. 

Best of all, FoxBASE is economical. Single-user FoxBASE 
costs just S395, multi-user FoxBASE $995**-no matter 
how many workstations you have. 

So call (419) 874-0162 now, and ask for a copy of our 
detailed benchmarks. After all . . . 

Nothing Runs Like a Fox. 

Fox Software 

27475 Holiday Lane, Perrysburg. OH 43551 

(419)874-0162 Telex: 6503040827 

... ..^oINai 

v ; . ,"■ :::'.',::•..:':.." 
Svstems bit - tiBMAN 
isausdemiiko) Vetsa- 
Sort Ccrpofafcnn -UNI 

I pud US att regis 
icieduaSe.-rsi^:- ■_* 
Microsoft Corporation 


In order to clear away hype and set stan- 
dards. I suggest that the following text be 
read in clear measured tones to all devices 
purporting to function as "voicewriters": 

"Cap Ten and my caftan." kept on cry- 
ing the Captain. "Cap Ten!" Of num- 
bered caps, Cap Ten suited the Cap- 
tain. He had numbered them as the 
numb bird landed. "Land dead 
ahead!" called out the Mate to caw- 
ing from the numb bird. Would its 
gnaw tickle? It cawed, but it was 
caught on the carpet. "Correction!" 
the Captain would carp pettily. "Your 
nautical law has no tickle. We've three 
types of wreck: surface, deeper, core. 
Sir. fuss deeper, weave, hear the 
screw's deep purr. This ship's an old 
seesaw!" The Captain capped an epi- 
gram: "Old sea saw: Correction! Core 
wreck shun. Cap Ten and my caftan! 
I. as a Copenhagen Captain, coped on 
a captstan and kept on coping!" 

If the device makes more than five or 
six errors in transcription (or about one 
per twenty words dictated), some careful 
examination of the voicewriting concept 
may be in order. 

While it may seem that this text has 
been contrived to place a fairly high strain 
on such machines, the difficulties it 
presents are not only normal but inevit- 
able. Similar ones are found in everyday 
spoken English, where not only isolated 
homonyms but the ordinary internal 
phonetics of words and phrases can 
create obstacles to sound and word recog- 
nition. In some foreign languages, par- 
ticularly Chinese and other members of 
the Sino-Tibetan family, this problem is 
many times more difficult than in English. 

A few years ago there was a great deal 
of noise to the effect that computers 
would soon replace "analog." or human, 
translators. This was before it was realized 
how difficult the problems of translating 
natural languages actually are. and now 
those companies involved in machine 
translation talk of working with, rather 
than replacing, the translator. 

Some of the same problems involved in 
machine translation are also present in 
transcribing spoken words, in some ways 
in even more acute forms. Hence, it may 
be a bit premature to talk of replacing 


20 B YTE • OCTOBER 1986 

Inquiry 116 






Whether it's BASIC, COBOL, 
Pascal, "C" or a data base manager, 
you're being held back. 

Held back because the language 
has frustrating limitations, and the 
programming environment isn't 
intuitive enough to keep track of 
what you're working on. 

In the real world, there's pres- 
sure to do more impressive work, in 
less time, and for more clients. 

We've been given some incredibly 
powerful hardware in recent times, 
but the languages aren't a whole lot 
better than they were 20 years ago. 

So, whatever language you have 
chosen, by now you feel its out to 
get you — because it is. 

Sure, no language is perfect, but 
you have to wonder, "Am I getting 
all I deserve?" 

And, like money, you'll never 
have enough. 

Pretty dismal, huh? 

We thought so, too. 

So we did something about it. 

We call it CLARION™ 

You'll call it "incredible." 

Distributed on 7 diskettes, 
CLARION consists of over 200,000 
lines of code, taking 3+ years to 
hone to "world-class" performance. 

With CLARION you can 
write, compile, run and debug 
complex applications in a 
New York afternoon. 

Even if you're in Savannah. 

It gives you the power and 
speedto create screens, windows 
and reports of such richness and 
clarity you would never attempt 
them with any other language. 

Because you would have to 
write the code. 

With CLARION you simply 
design the screens using our 
SCREENER utility and then 
CLARION writes the source code 
AND compiles it for you in seconds. 

Likewise, you can use 
REPORTER to create reports. 

Remember, only CLARION can 
recompile and display a screen or 
report layout for modification. 

And with no time wasted. 

All the ix>wer and facilities you 
need to write great programs, faster 
than you ever dreamedof. 

Programs that are easy to use. 

Programs that are a pleasure to 

And to you that means true 

You've coveted those nifty pop-up 
help windows some major applica- 
tions feature. But you can't afford 
the time and energy it takes to 
write them into your programs. 

That's the way it usedto be. 

So we fixed that, too. 

interactive utility that let's you 
design the most effective pop-up 
help screens that you can imagine. 
And they're "context sensitive, 
meaning you can have help for 
every field in your application. 

Unlike the other micro 
languages, CLARION provides 
declarations, procedures, and 

functions to process 
dates, strings, 
\^ screens, reports, 

indexed files, 
DOS files and 
memory tables, 






Imagine making_ source program 
changes with the CLARION EDI- 
TOR. A single keystroke termi- 
nates the EDITOR, loads the COM- 
PILER, compiles the program, loads 
the PROCESSOR and executes the 
program. It's that easy! 

Our data management capabili- 
ties are phenomenal. CLARION 
files permit any number of compos- 
ite keys which are updated dynami- 

A file may have as many keys as 
it needs. Each key may be com- 
posed of any fields in any order. 
And key files are updated when- 
ever the value of the key changes. 

Like SCREENER and RE- 
also has a piece of the CLARION 
COMPILER. To create a new file, you 
name the Source Module. Then you 
name the Statement Label of a file 
structure within it. 

FILER will also automatically 
rebuild existing files to match a 
changed file structure. It creates a 
new record for every existing rec- 
ord, copying the existing fields and 
initializing new ones. 
^Sounds pretty complicated, huh? 
" Not with CLARION'S docu- 
mentation and on-line help 
screens. If you are currently 
competent in BASIC, Pascal 
or "C" you can be writing 
CLARION applications in a 
day. In two days you won't 
believe the eloquence of your 
CLARION programs. 
Okay, now for the best part of 
all. You can say it in CLAEtON 
for $295.00— plus shipping and 
handling. All you need is an IBM® PC, XT, 
AT or true compatible, with 320 KB of 
memory, a hard disk drive, and a parallel port. 
And we'll allow a full 30 day evaluation 
period. If you're not satisfied with 
CLARION, simply return it in its 
original condition for a full refund. 
If you're not quite ready to take 
advantage of this no-risk 
opportunity, ask for our detailed 16 
page color brochure. It vividly 
illustrates the elegance of 
CLARION. Consider it a preview of 
programming in the fast lane. 
Either way, the 800 call's a freebie. 

gjgjMgTON SKTCMSJNC ISO EAST SAMPtl ROAD KjjjgjjjO BEffl F10MM 33064 305/785-4555 

IBM is a registered trademark of International Business Machines Corporation. CLARION™ is a trademark of Barrington Systems, Inc. ©1986 Barrington Systems 

Inquiry 34 

OCTOBER 1986 • BYTE 21 


secretaries and stenographers with voice- 
writing devices. 

Alex Gross 
New York NY 

Combining Languages 

1 would like to comment on the remarks 
in the June Best of BIX about the similari- 
ties and differences between Ada and 
Modula-2 (pages 376-378). 

1 believe that the real debate between 
the proponents of each language should 
not rest upon whether one should have 
an "everything but the kitchen sink" 
philosophy or a "do the rest by yourself" 
philosophy. The real debate is on how 
much information a programmer can ab- 
sorb in learning while remaining proficient 
at the job and how to increase program- 
ming efficiency. 

The first philosophy (that of Ada) creates 
an environment where programmers must 
absorb an incredible amount of informa- 
tion. They must remember not only the 
keywords of the Ada language but also a 
very sophisticated syntax. 

In this philosophy, programmers are 
easily overwhelmed, especially if they 
already know another language. On the 

other hand, this philosophy provides an 
identical environment for all Ada program- 
mers. An Ada programmer can move from 
one environment to another with very lit- 
tle difficulty. 

The second philosophy (that of 
Modula-2) represents a language stripped 
down to its essential parts. It becomes a 
pure and simple tool. What is the problem 
with that? you might say. There is the lack 
of an identical environment for all 
Modula-2 programmers. Having a module 
capability provides access to indepen- 
dently written functions fordoing all sorts 
of work. 

But this capability, if left completely free, 
can have harmful effects, too. For exam- 
ple, each time Modula-2 programmers 
have to change systems, they have to 
relearn the graphics procedures of the 
other environment. This is a matter of 
philosophy, not implementation, because, 
although it would be easy for Modula-2 
to define the workings of certain external 
modules, this clashes with its minimalist 

Still, the learning problem remains. We 
become victims of what is commonly 
called the "tyranny of large numbers" by 

electrical engineers. This problem arises 
in the construction of VLSI chips. These 
chips contain around 200.000 com- 
ponents. It has now become impossible 
for an engineer to design and lay out one 
of these chips without the help of logic 
simulators, circuit simulators, and a slew 
of computer-aided engineering tools. 

If you compare the situation of electrical 
engineers to that of today's programmers 
you see that, although programmers are 
faced with tasks of ever-greater complex- 
ity, they do not have the computer tools 
that will help them perform their jobs with 
the greatest possible efficiency. Program- 
ming as a discipline has not changed since 
19 59. In other words, we are using 27-year- 
old technology We are still entering our 
programs by hand, still designing them 
(sometimes) with pencil-drawn flowcharts, 
and still using simplified documentation 
systems (i.e.. comments). Can you imagine 
an electrical engineer spreading out a 
large sheet of paper on the kitchen table 
to design even a very simple microproces- 
sor? Yet many programmers are faced with 
tasks of this complexity. 

What programmers really need is not a 


That's how easy it is to implement on the Apple Macintosh the enormous volume of applications 

written in dBase III for the IBM PC, Using dMac III, you can develop applications on the 

Macintosh and transfer them to the PC where they can be implemented under dBase III. 

With dMac III, the IBM PC and the Apple Macintosh work as a smooth running, tireless team. 

• dMac Ill's nearly limitless range of power includes: 

•Up to 2,000 procedures per procedure file 
*Up to 2.000 memory variables 

* Up to 2,000 fields per record 

* Up to 253 bytes per field 

• Like dBase III, dMac III features a powerful programming language that offers 
Macintosh users the ability to create professional business applications. 

• dMac HI shares data with other major Macintosh software packages... in both 

• To run dMac HI you need: 

* Apple Macintosh or Macintosh plus with 512 KB RAM 
*two disc drives or one disk drive and a hard disk 

III is immediately available at a suggested retail price of $49 5 A 

For your authorized dMac III dealer contact: 


11770 Bernardo Plaza Ct. Suite 217 

San Diego, CA 9212& 

(619) 487-6946 

IBM is a trademark of the IBM Corporation. 

dMac III makes the exchange smoothly and in stride. 


Ten Good Reasons to Buy 
an Amazing Things™ Model 
"A" Series™ Modem 

1 . Amazing Things Modems Provide Access to 
a Wealth of Information through Data- 

You can access over 2,500 informational databases with 
an Amazing Things Modem. Research topics from astro- 
logy to zoology, stock quotes, news, weather, sports, 
legal references, medical information and more. 

2. Amazing Things Modems Network. 

Connect your personal computer to any other personal 
computer in your office or in the world. 

3. You can Telecommute with Amazing 
Things Modems. 

Work at home and send your data to the office via tele- 
phone. Observers believe that 15-20 percent of the 
office work force will be telecommuting by 1 990. 

4. Amazing Things Modems are Direct Links 
to any Mainframe. 

Access your company's mainframe from your office, from 
your home or on the road with an Amazing Things 

5. Amazing Things Modems Overcome 
Incompatibility Problems. 

Send documents from one personal computer to 
another, even if the systems are incompatible. 

6. Amazing Things Modems Bring You Elec- 
tronic Banking and Shopping. 

Many banks now offer banking and investment services 
over the telephone. And you can shop for thousands of 
products — from cameras to clothing — with electronic 

7. You Can Send and Receive Electronic Mail 
with Amazing Things Modems. 

Send letters and memos instantly. Mass mail them auto- 
matically, across the office or across the country. 

8. Amazing Things Modems are Inexpensive 
Alternatives to the Telex. 

Send and receive volumes of information overseas at a 
fraction of the cost of a Telex. 

9. Amazing Things Modems are Fun. 
Through various bulletin boards, you can join clubs, 
exchange software, advertise, meet people, find jobs and 
much more. 

10. Amazing Things Modems are Inexpensive. 
The Amazing Things Model "A" Series I200B Modem is 
priced at $149.95 — about one third the price of an 
equivalent Hayes Modem. And the 2400B is priced at 
only $289. 

• 300-1200 Baud $149.95 

• 300-2400 Baud $289. 

• Half-Card 

• Auto-Answer, Auto-Dial 

• Hayes®-Compatible 

• Full or Half-Duplex 

• Two- Year Warranty 

• For Leading Edge® Personal Computers, IBM 
and Compatibles 

For a dealer near you or to order direct, call 1-800-835-0139, (6 17)551 -0880 in MA. 
MasterCard and Visa accepted. 

Amazing Things Inc. 

57 Providence Highway 

Norwood, MA 02062 

Amazing Things and Logo and Model "A" Series are trademarks of Amazing Things, Inc. Hayes is a registered trademark of Hayes Microcomputer Products. Inc. IBM is a registered 
irademarkof International Business Machines Corp. Apple is a registered trademark of Apple Computer Inc. Leading Edge is a registered trademark of Leading Edge Products, Inc. 

Inquiry 163 


single "do it all" language but an environ- 
ment providing tools for creation, verifica- 
tion, and documentation of programs. 
Who cares if the program is written in five 
different languages if each one is used to 
perform a task it is intended for. The goal 
of a programmer is not to program in a 
certain language but to produce a pro- 
gram. Loyalty to a programming language 
is ridiculous! The end justifies the means. 
It would seem logical to call these systems 
computer-aided programming (CAP). Un- 

fortunately, these systems do not have 
widespread use. Instead of worrying about 
user-friendliness, how about worrying 
about programmer-friendliness a little bit? 
If programmers are given better working 
conditions, they will find it easier to pro- 
duce user-friendly interfaces. It seems evi- 
dent that more effort will be put into 
designing something if the design process 
becomes simpler. 

You may be wondering why I wrote this 
letter. I am an 18-year-old student and I 


ACTOR™ is a new, interactive pro- Moreover, ACTOR is a new, object- 
gramming system, the first with Micro- oriented piogramming language. Wind- 
soft® Windows. You have Windows ing objects up and turning them loose 
when you write a program, and users is a lot easier, more productive, and more 
have Windows when they run it. fun than old fashioned programming. 

Thanks to a new method of" in- 
cremental garbage collection," ACTOR 
never has to slow down to clean up 
memory like other advanced languages. 
You can even use it for real-time con- 
trol. It's that fast. 

ACTOR ofTers all the features of 
an ideal artificial intelligence language, 
but in a familiar, Pascal-style syntax. 
Which makes artificial intelligence pro- 
gramming easier. And what could be 
smarter than that? 

From a brief audition like this, you really can't see how much better it is 
programming with ACTOR ACTOR is more than just a research tool. It's an 
effective language for developing real applications. For more information, write 
us at the address below or call 312-491-2370. It'll help you appreciate 
the performance. 


Technology Innovation Center *■ 

906 University Place, Evanston, IL 60201 

find it difficult to understand why grown 
men can be such crybabies when it comes 
to computer languages. 1 also find it hard 
to believe that, after 27 years, we do not 
have commercial CAP systems readily 
available for many machines such as the 
IBM PC or the Macintosh. At a time when 
businesses talk about '"efficiency" and 
"productivity" 1 find this aberrant. 

Although I have voiced a number of 
strong opinions. I would like to thank you 
for producing the Best of BIX column. It 
provides an excellent forum for user feed- 
back and lets many of us, who do not ac- 
cess BIX directly, benefit from the ex- 
periences of others. Although I do not 
always agree with many of the comments. 
I enjoy reading them very much. 

Ronald J. Perrella 
St Jean de Br aye, France 

Accessing Foreign On-line 

I have been following the discussion of in- 
ternational access to data networks, and 
I'd like to add my part of the story. 

1 have called different on-line services 
from Argentina, where the organization of 
telephone lines, as well as the access to 
data networks, is government-controlled, 
as in Europe. 

The rates are $ 1 2 an hour, plus $.58 per 
kilosegment, plus the call to the local 
node, about $.60 an hour. 

There's no membership nor minimum 
usage and neither annual nor monthly 
fees. 1 noticed that some readers had com- 
plaints about some on-line services bill- 
ing a surcharge for the network usage 
within the U.S., which added to the ser- 
vice fee plus the international access, 
which increases the overall cost even 
more. There is, however, an on-line service 
that not only doesn't surcharge for net- 
work usage, but also has a flat. 24-hour 
fee for international users. This system is 
Delphi, which is located in Cambridge, 

Anyway, all the letters up to this point 
have been about access to the U.S. What 
about access from the U.S. to foreign on- 
line services? I moved to the U.S. last 
December, and since then 1 haven't been 
able to call the Argentinian systems. 
Maybe a reader can come up with some 
idea? I called the network's customer sup- 
port numbers without success. 

Javier Henderson 
Alta Loma. CA 

Inversion Divergence 

After reviewing "Inverting Large Matrices" 
by Thomas E. Phipps (April), we ran the 
program on page 186 without lines 150 


24 B YTE • OCTOBER 1986 

Inquiry 324 




/• Tbne or pulse dial / 


3 Models: 

(2400 baud) 

• 21 2 AT/201 

(1200 and 2400 baud) 


(4800 baud) 

Description: / 

SYNCmodem is an IBM PC, XT or AT bus 
compatible interface card capably of 
operating as a synchronousjnociem or 
as a synchronous interface card. 
-^SYiSIQmoctern is ideal for remote PC-to- 
mainf rame or PC-to-PC communications. 
It comes fully integrated with 3780Plu5™, 
CLEO-3270 SNA or BSC, and CLEO-5250 SNA 
software packages. 

3780Plus allows fast and efficient file 
transfers, over common phone lines, 
between your PC and any micro, mini, or 
mainframe that supports 2780/3780 

Bisync protocol. 

CLEO-3270 SNA or BSC and CLEO-5250 
SNA allow your PC to emulate a remote 
327x or 525x terminal device. All you need 
is a phone line. 

The 212/201 modem includes the Mirror 
asynchronous software package in addition 
to your selected CLEO SNA or BSC package. 

For details call 1(800)233-CLE0. 
In Illinois 1(815)397-8110. 


CLEO Software 

a division of Phone 1, Inc. 
1639 North Alpine Road 
Rockford.IL 61107 
TELEX 703639 

CLEO irfa registered trademark of CLEO Software. 
SYNCmodem and 3780Plus are trademarks of CLEO Software. 

Inquiry 62 


and 160. We found that the technique was 
highly oscillating in nature and diverged 
within 5 iterations. With the above lines, 
the program converged in 5 minutes, 20 
seconds with 14 iterations. We would like 
to hear the author's comments on this. 
H. V. Ramakrishnan 
Bombay, India 

Dr. Ramakrishnan is quite correct about 
the instability of the published algorithm 
for the case in which entries (whether 

random numbers or user-supplied num- 
bers) are all of one algebraic sign. This 
took me completely by surprise, since 1 
had assumed that random signs would 
stress the algorithm more, and I failed to 
check this unwarranted assumption. 
Other users of the program have re- 
ported occasional instabilities of large- 
matrix inversions. 

The cure for all such problems is im- 
mediate if we recognize that the plain 
Newton's iteration is always stable. The 




Turbo Debugger™ Features 

• User-Definable custom windows — 
Change window sizes or colors 

• Single-step tracing with "Back-Tracing 
up to 100 instructions 

• In-Line relocating Assembler with 
non-destructive insert capability 

• Fully Symbolic, Create Comments and 
Line Labels, Keyboard macros 

• Dual Monitor support, with 

• Specify several Breakpoint condi- 
tions with the built-in Assembler 

• Use NMI Breakout switcher > 
User-definable i 
hotkeys . j* 

• Read, Write an& 
Modify, EXE files} 

Turbo Editasm'" Features 

• Integrated WordStar 
compatible Editor 

• Integrated Microsoft compatible Macro 


• Ful8088, 8086, 8087, 80186, 80287, 

80286(R) & (P) support 

• Full Macro expansion capability 

• Built-in Calculator & Xreference 


• Limited DOS command support 

• Supports In-Memory Assembly 



To maximize your programming potential order the ultimate 'Turbo Team" today — the first 
well-tuned, high-speed assembler/debugger for the IBM RC. and compatibles family. 

00 $CQ00 

w=8eae 8*:eeeo I tc:2nEn eczua c^zaeU s*-2MA j fy-mxi tn::iee«i=tD 
jcoeai t>x:9m B s\-mon D\-ma it-awi sp-ftra |hv u? ei pi Mi tu ra * 

Turbo Editasm® Turbo Debugger^ 


I Inside California 

334-3664 • Outside California (800) 443-6190 I 

$99.00 n Turbo Editasm" 
$89.00 a Turbo Debugger™ 

Amount Enclosed ^B 

Speedware [M 

9779 Lincoln Village Dr., Ste. 303 
Sacramento, CA 95827 

■-. I I I I I I I I I I 
Mi ll 



Dealer and Education Discounts Available. B 

□ ulsulR LISA add 10% ar 

trouble lies in my' Improvement" on that 
algorithm— particularly in my choice of 
parameter value m = 4 in equations 12 
and 13, in figure 1 of the article (page 
182). The smaller the m value, the greater 
the assurance of stability. The choice m 
= I provides a reliable compromise be- 
tween speed and assurance of stability 
for inverting matrices whose real-number 
entries are all of one sign, (m = 2 also 
works, but m > 2 is unsafe.) Thus, in the 
program listing one just changes line 380 
to read 

380 FOR 1=1 TO N:X(l,l)=1 + E(l,!):NEXT 

For greater flexibility 1 find it useful to 
rewrite the program to make m an op- 
tional input parameter. 

THOMAS E. Phipps (r. 
Urbana, IL 

New Chip Shipped 
by Request Only 

After visiting COMDEX in Atlanta this 
spring, we were immensely impressed 
with the new Star Micronics NX-10. It is 
without a doubt the best sub-$300 printer 
available. Having owned a Star Gemini- 
10X, we were cognizant of Star's excep- 
tional quality, cost, and performance. Im- 
mediately, we each ordered one and we 
were startled at what we received. 

The problem was that the print quality 
and print fonts were completely different 
from, and substantially inferior to, what we 
saw at COMDEX. Fortunately, we had re- 
tained a sample printout from the printer 
at COMDEX and quickly notified Star of 
our displeasure. After first denying the 
problem then taking our names and 
telephone numbers, the people at Star 
assured us they were aware of the prob- 
lem and action would be taken. 

Approximately four weeks and three 
phone calls later, the new EPROM chips 
arrived. They were labeled version 1.3 and 
replaced version 1.2. The print is nearly 
identical to that of the COMDEX display. 

Finally, we asked how long someone 
would have to wait in order to purchase 
an NX-10 with the new chip from a local 
computer store. The technical representa- 
tive said Star has no plans to update this 
chip in the NX-10, and if you want the new 
chip you have to call Star and ask for it. 

How do you tell which version your 
NX-10 has? Simply remove the ribbon car- 
tridge and look through the plastic cover 
at the chip beside the two banks of DIP 
switches. The number is printed on the 
chip. Our advice is to call Star and ask 
what action to take for replacing the chip. 
Dale S. Owens 
Arthur "J. Faske 
Atlanta, GA ■ 

26 BYTE • OCTOBER 1986 

Inquiry 20 

New Line of Everex Cards For Your AT 

Everex announces a new line 
of add-in peripheral cards that 
increase the power and 
performance of your IBM AT ™ 
or compatible. 
Magic I/O™ 

The Everex Magic I/O is a half 
size multifunction board that is 
just right for extra I/O. You get 
one standard RS-232C serial port, 
an optional serial port, and a 
parallel printer port. Extra I/O 
at a low price! 

Maxi Magic EMS™ 

The Maxi Magic EMS gives you the 
maximum amount 4MB of RAM in 
a single slot. This expanded 
memory card supports the Lotus- 
Intel-Microsoft expanded memory 
specification. You can configure 
the memory any way you like with 
user-selectable memory 
addressing. And there's split 
memory addressing so that you 
can use some of the RAM to 
upgrade your PC to 640K. 

1-800-821-0806 1-800-821-0807 

In the USA 

In California 

48431 Milmont Dr. 
Fremont, CA 94538 

EVER for Excellence ™ 

Manic 1/0. Masi MaRic EMS. RAM MX), and MaRic Card 1 6 are trademarks of MU» SYSTEMS. INC. 
IBM AT is a trademark of International business Machines Com. 

Inquiry 104 for End-Users. Inquiry 105 for DEALERS ONLY. 

RAM 3000™ 

The RAM 3000 is an extended 
memory board that gives you up 
to 3MB in user-assignable RAM, 
using either 64K or 256K RAM 
chips. This board is perfect for 
UNIX and those applications that 
require direct memory addressing. 
Magic Card 16 ™ 

This multifunction has it all! Two 
megabytes of RAM that lets you 
customize the memory to your 
existing memory. One standard 
serial port and a parallel port, plus 
an optional serial port handles all 
your I/O problems. There is also a 
game port, and included is word 
processing, Ramdisk, spooler, and 
Form Manager software. Call your 
local dealer for a demo, or call 
EVEREX to get all the facts on our 
new line of AT peripheral cards. 



Tech Personal Computer's 

Tech PC Twin Multiuser 
Starting From $1699 

Tech PC/XT base unit with 640K, and two 360K disk drives. 

Two high resolution monitors, two selectric style Hi-Tek 
keyboards, 50 feet of shielded cable to separate the 
two stations. 

System supports up to six printers. 

Full software support with multi-level file, security, electronic 
message facility to send and receive messages between users, 
password logon system, and system operator command level. 

System supports all popular software such as Wordstar, 
dBaselll, Lotus 123, Multimate, etc. 

Tech PC Triad Multiuser 
Starting From $2599 

Tech PC/XT base unit with 640K, and two 360K disk drives. 

Separate Intel 80188 microprocessor running at 8 MHz and 
512K for each terminal. 

Three high resolution monitors, three Selectric style Hi-Tek 
keyboards, 50 feet of shielded cable to separate the three 

System expandable to 32 workstations. 

System supports up to six printers. 

Full support for multitasking multiterminal use with print 
spooling for multiple printers, background monitoring of the 
system, dial up bulletin board support, passwork protection, 
and file/record locking supporting PC Network protocol. 

System supports all popular software such as Wordstar, 
dBaselll, Lotus 123, Multimate, etc. 




IBM, IBM XT are registered trademarks of International Business Corporation. 

Multiuser Systems • . . 

Tech PC Quad Multiuser 
Starting From $4499 

Tech TurboPC/ ATbase unit in portable or desktop configura- 
tion with 512K, multiple serial ports, three Tech PC terminals, 
connecting cables, and networking software. 

Four users expandable to nine users over dumb terminals or 
PC's with terminal emulation software. 

Capacity for up to 16 printers at remote sites with up to 6 local 
printers attached to the main unit. 

Each user can access 512K of RAM with memory expansion 

Full support for multitasking multiterminal use with print 
spooling for central or terminal printing, background 
monitoring of the system, dial up bulletin board support, 
password protection, and File/Record locking using PC 
etwork protocol. 

System supports all popular software such as Wordstar, 
dBaselll, Lotus 123, Multimate, etc. 

Tech PC Turbo Quad Multiuser 
Starting From $5999 

Tech PC/XT base unit in portable or desktop configuration 
with 640K, multiple serial ports, three Tech PC terminals, 
connecting cables, and networking software. 

Separate NEC V208088 Intel compatible 8 MHz CPU and up 
to 1 MB RAM for each terminal on the system. 

Two fully functional serial ports per terminal. 

Four users expandable to 32 users over dumb terminals or 
PC's with terminal emulation software. Capacity for 
unlimited number of local printers. 

Full support for multitasking multiterminal use with print 
spooling for multiple printers, background monitoring of the 
system, dial up bulletin board support, password protection, 
and File/Record locking supporting PC Network protocol. 

System supports all popular software such as Wordstar, 
dBaselll, Lotus 123, Multimate, etc. 


1911 Betmor Lane, Anaheim, California 92805 
Telex 272006 Answer Back - TECH FAX: 714-5568325 

Inquiry 297 far Erid-USfirs. Inquiry 298 for DEALERS ONLY. 



Open Access II 

Comparison Chart 




. § .2 got 

fe « CC W *- 0> W ~ £, 

>-^5^Q ocdczcu^s^ 

i I — C_> fHT r ^ d CO 

-Q r- ^ > ^ ■£ f n CO UJ ^ t ' 

Qu_oc0a:0coa)0 50 





! Open Access II 

• s • * 

V* lS tS 1/ 1/ 

* W 595 00 1 

Lotus 1-2-3 


\ A A 






\ A \ A 

A A 695°° 



A A 

A \ A 

A A 695°° 




A A A 

A A 695°° 




A A A 

A A A 895°° 




Open Access II is a 
new, super-program which 
can perform virtually every 
managerial and business 
task you'll ever need with 
performance and ease-of- 
use unheard of in the 

Open Access II 
combines an extremely 
powerful relational data- 
base and superior 
spreadsheet with data 
communications, word 
processing, 3-dimensional 
graphics, and time 
management. Information is 
conveniently changed from 
module to module. 

Open Access lis 
Database features an 
effective and flexible report 
generator and user 
definable screens. 
"Programmer," our new 
Database language, 
features simple interacting 
English-like commands 
to produce your customized 

Open Access H's 
Spreadsheet offers a unique 
combination of business 
problem solving capabilities; 
including goal-seeking, and 
an advanced table look-up 
command. Professional 
business presentations 
are easily produced by 
the enhanced graphic 

Open Access H's 
improved Word Processor 
can merge data from 
Spreadsheet or Database 
easily to produce reports, 

mail merge and graphic 


Inquiry 280 for End-Users. 
Inquiry 281 for DEALERS ONLY. 

Open Access H's data 
communications provides 
you with the capabilities to 
handle any of your micro 
computer communications 
needs. All of Open Access 
H's modules work together 
and data is easily 
communicated to the rest of 
the world. 


U.S. Version Only 


Open Access H's super 
program is also available in 
the network version. Askfor 
details. Call (619) 450-1526 
in California, or (800) 
521-3511 if outside Cali- 
fornia for your nearest 
authorized dealer or 
distributor and expand your 
business base with Open 
Access II, the fully 
integrated business system. 



10240 Sorrento Valley Road 

San Diego, California 92121 


For Your Authorized Dealer 

In California 


Outside California 


1956 Software Products international. Inc. All tights reserved 
Open Access isa registered trademarks Soflware Products in 
OpenAccess llisa trademark ofSoflwareProductslnlernational.tnc 
Lolus 1-23andS)fmphonyare registered Irademarksol LolusOe»eloDmenlCorp 
Framework is a ie(Jistered[lradernark ot Ashlon Tale. 
Enable is a trademark of Trie Soltware Group 
Smart Is a trademark ol InnovativeSoftware.lnc. 



Tbndy Announces 
Five Systems 

Tandy Corp. has intro- 
duced five computers, 
including two PC com- 
patibles, an XT compatible, 
an AT clone, and a new ver- 
sion of the Color Computer. 

The 1000 EX, a PC com- 
patible which sells for $799, 
is a one-piece unit that 
resembles a wide Apple He. 
The EX's dual-speed 8088-2 
runs at 7.16 or 4.77 MHz. 
The machine comes with 
one 5 /4-inch floppy disk 
drive (an external 3/2- or 
5!4-inch floppy drive is op- 
tional); 2 56K bytes of RAM 
(expandable to 640K); three 
Plus expansion slots; and a 
new version of DeskMate, 
called Personal DeskMate, 
that has a graphical inter- 
face similar to Microsoft 
Windows. A monochrome 
monitor costs an extra 
$129.95; a color monitor, 

The landy 1000 SX, priced 
at $1199, a PC compatible 
that physically resembles the 
current 'landy 1000 and 
comes with two 5!4-inch 
floppy disk drives, 384K 
bytes of RAM, five PC- 
compatible expansion slots, 
DeskMate 11. MS-DOS 3.2, 
and GW-BAS1C. The com- 
puter uses the same pro- 
cessor as the EX. An exter- 
nal 3/2-inch floppy disk 
drive costs $279; monitor 
options are the same as 
with the EX. 

The first of the new 3000 
series, the 3000 HL, uses an 
80286 but is not fully com- 
patible with the IBM PC AT 
landy bills the $1699 ma- 
chine as an XT compatible. 
The HL comes with 5I2K 
bytes of RAM, one 360K- 
byte floppy disk drive, and 

Tandy's 1000 EX, an 8088-based IBM PC compatible. 


r jr *• r r i ; : 1* ■ : r • M 

1 < * *"*■*■.»■< ■ » 1 * 

i .1 . ■ V t. 


The Tandy 3000 HL, an XT compatible based on an 80286. 

seven expansion slots. Hard 
disks are optional: a 20- 
megabyte unit costs $799 
(plus $399 for the con- 

troller), and a 40-megabyte 
model costs $1799 (plus the 
$399 controller). A monitor 
is extra. 

The 80286-based 3000 HD 
is an enhanced version of 

the AT-compatible 'landy 
3000. Priced at $4299, the 
HD comes with a 1.2-mega- 
byte floppy disk drive, a 
40-megabyte hard disk drive, 
640K bytes of RAM, 10 ex- 
pansion slots, and a real- 
time clock. An optional 
parallel/serial adapter costs 
$79.95. A monitor is extra. 
The system will run XENIX 
System V. which will enable 
its memory to be expanded 
to 12 megabytes. Iomega 
Corp. says its new Beta 20 
internal disk drive, which 
utilizes 20-megabyte 5!4-inch 
removable cartridges, is 
available as an option with 
the 'landy 3000 HL and 
3000 HD. 

The Color Computer 3, 
priced at $219.95, uses a 
6809E processor with clock 
speeds of 0.87 or 1.7 MHz. 
It comes with 128K bytes of 
RAM (expandable to 512K) 
and a memory-management 
unit; I 5- and 30-megabyte 
hard disks are available as 
extras. The machine displays 
640 by 192 pixels! 80 
characters by 24 lines, and 
four colors (out of a possi- 
ble 64) on its CM-8 color 
monitor, which costs 
$299.95. The C0C0 3 can 
run the OS-9 Level 2 
operating system, which 
gives it multitasking capabil- 
ity, and it's software- and 
hardware-compatible with 
the C0C0 2. 

'landy said it is discontinu- 
ing the Model 1200 and the 
old 'landy 1000. For more 
information, contact 'landy 
Corp./Radio Shack, 1800 
One Tandy Center, Fort 
Worth. TX 76102, (817) 
Inquiry 550. 


OCTOBER 1986 • BYTE 31 


Amiga Expansion 

The PAL System, an ex- 
pansion chassis for the 
Commodore Amiga, enables 
you to add extra RAM, hard 
disks, and other options to 
the computer. In its base 
configuration, the unit sells 
for $1795. This includes I 
megabyte of RAM, which is 
located in the Amiga's re- 
serve memory and can be 
autoconfigured; a battery- 
backed clock/calendar; and 
five DMA expansion slots 
that conform to the com- 
puter's 100-pin connector ar- 
chitecture. The chassis can 
hold three half-height drives 
and comes with a 200-watt 
power supply and fan. 

Units with 20- and 45- 
megabyte hard disks are 
available for $3195 and 
$3995, respectively. Optional 
expansion cards include pro- 
totyping cards ($63) and a 
2-megabyte RAM card 
($1195) that can be up- 
graded to 8 megabytes. For 
more information, contact 
Byte by Byte Corp., 3736 
Bee Cave Rd. Suite 3, 
Austin, TX 78746, (512) 
Inquiry 551. 

PFS Products 
Replaced with Series 

The PFS:Professional 
series for IBM PCs and 
compatibles combines four 
individual programs for 
database management, word 
processing, spreadsheet 
analysis, and network capa- 
bilities. The programs work 
with other common office 
software, exchange data with 
each other, and read current 
PFS files directly 

PFS:Professional File, the 
database management pro- 
gram, has searching and 
sorting capabilities and of- 
fers global updating and 
reporting with up to 64 sort- 
ing levels, crosstab reports, 
and mailing labels. It re- 
quires 256K bytes of RAM 

The PAL System, an expansion unit for the Amiga. 

and MS-DOS or PC-DOS 2.0 
or higher and sells for $249. 

PFS:Professional Write, the 
word processing program, 
offers a 70,000-word spelling 
checker with a thesaurus 
that has 20,000 keywords 
and 120,000 synonyms. 
Other features include an 
address book for mail 
merge, a line-drawing 
capability, single- and 
double-spacing of the same 
document, and block editing 
capabilities. It requires 320K 
bytes of RAM and MS-DOS 
or PC-DOS 2.0 or higher 
and is priced at $199. 

PFS:Professional Plan, the 
spreadsheet program, com- 
bines recalculation ability 
and expanded spreadsheet 
size with analytical graphics. 
Its formulas are cell- as well 
as row/column-oriented, and 
its 94 formula keywords pro- 
vide date, logic, mathe- 
matical, statistical, string, 
financial, if-then-else, and 
table lookup functions. Pro- 
fessional Plan requires 384K 
bytes of RAM and MS-DOS 
or PC-DOS 2.0 or higher. 
The list price is $249. 

The series also includes 
PFS:Professional Network, 

which sells for $499, and 
enables multiple users to 
share Professional Series 
programs on a network. Re- 
quirements for Professional 
Network, as well as any of 
the series when used on a 
network, include 512K bytes 
of RAM and MS-DOS or PC- 
DOS 3.1. 

For more information, con- 
tact Software Publishing 
Corp., P.O. Box 7210, Moun- 
tain View, CA 94039. (415) 
Inquiry 552. 

Two Token Ring 

3Com introduced a line 
of networking products, 
called TokenPlus, for con- 
necting computers and 
workstations to a 3Com or 
IBM Token Ring network. 
The products include the 
Ringlap ($95) and TokenPlus 
Cabling System, connectors 
and cables for hooking com- 
puters and workstations to a 
Token Ring network; prices 
for the trunk cables start at 
$50. The TbkenLink Plus, an 
80186-based adapter card 
that sells for $1095, pro- 
vides 256K bytes of RAM 
for a computer or worksta- 

tion connected to a network. 
The Token Connection 
($1295). an expansion card 
for 3Com's 3Server, con- 
nects the file server to a 
Token Ring network and can 
act as a gateway between a 
Token Ring and an Ethernet 

The company's 3+ net- 
work operating system soft- 
ware provides support for 
an Ethernet or Token Ring 
network; 3+NetConnect, a 
3+ software module, con- 
nects Ethernet and Token 
Ring networks. 

A TokenPlus Starter Kit. 
which contains three Token- 
Link Plus adapters, three 
Ringlaps, and associated 
cabling, sells for $375 5. For 
more information, contact 
3Com Corp., 1365 Shorebird 
Way, P.O. Box 7390. Moun- 
tain View, CA 94039, (415) 
Inquiry 553. 

Univation's LANscape is 
an Ethernet-based local 
area network for IBM PCs 
and compatibles that pro- 
vides links to Token Ring 
and UNIX systems. The 10- 
megabit-per-second network 
supports NETBIOS applica- 
tions and uses Novell's Ad- 
vanced Netware 2.0 op- 
erating system software, to 
which the company has 
added menu-driven diagnos- 
tics, monitoring, security, 
and software loading 

The system consists of the 
FS 2000 Series file server, 
which is based on a 10-MHz 
Intel 80286 and is available 
in capacities from 30 to 
1200 megabytes. The unit 
can support up to 100 work- 
stations. The network can 
also- convert existing per- 
sonal computers to file 
servers. A second compo- 
nent is the NC 516 Network 
Interface Card that connects 
computers, workstations, and 
file servers to Ethernet- 


32 B YTE • OCTOBER 1986 



TheFacit a C-line" includes the 400 cps, 15-cobr C7500 and the 250 cps, 7<ohr C5500 

The 400 cps report is finished. You press a button 
and the printer is ready for a single sheet, 15-color 
business graphics. Then you change to a multi- 
font NLQ printout from a second connected com- 
puter. At the same time, you also change the 
paper path for document-on-demand. Then you. . . 

The Facit C7500 and C5500 Matrix Printers not 
only handle a multitude of different applications. 
They permit instant switching from one applica- 
tion to another. 

Printout options (including NLQ, multi-fonts 
and graphics), paper handling and all set-up para- 
meters are changed in a matter of seconds using 
the "Yes" and "No" keys. Two entire parameter 
sets can even be pre-defined for instant selection. 

All at the touch of a key. 

IBM and Epson arc reg. trademarks ^■^■1 ^H^k ^F*^^ fl| ^^^^^^ 

Head Office: FacitAB,S1729lSundbyberg. Sweden. Phone: 468 7643000. USA : Facit Inc. HO. Box 334, Merrimack. NH 03054. Phone: (603) 424-8000 

AUSTRALIA:KM Electronics Associates Pty Ltd., 427-3322. A USTRIA: Ericsson Information Systems GmbH. 0222-613 641. BELGIUM: Ericsson S.A.. 02-243 82 11. 
CANADA: Facit Canada Inc., 416-821-9400. CYPRUS: LBM (Lilly tos) Ltd 516 46 34. DENMARK: Facit A/S, 02-63 3 311. FINLAND: O Y Facit, 90-420 21. FRANCE: Facit 
S.A..l-47807ll7.C/?£y47B/?/7>UN:Facit0634-40 20 80. G/?££C£: Computer Application Co.Ltd.. 01-671 97 22. /yONCATONC .Oilman^ Co. Ltd, 5-893 0022. /C£L/IA(D; 
GisIi'J. Johnsen HE 354-64 12 22. INDIA: Forbes Forbes Campbell & Co. Ltd.. 22-20 48 081. IRELAND: Ericsson Information Systems Ltd., 75 30 93. ITALY: Facit Data 
Products S.p.A., 039-63 63 31 JAPAN.-Electrolux (Japan) Ltd., 03-479-3411. KOREA: K.D.C Corporation, 723-8555/8236. r//£N£77/£/?Z7WZ)S: Ericsson Information 
Systems BY., 03480-709 11. NEW ZEALAND: Northrop Instruments and Systems. 501-801. 501-219. NORWA Y: Ericsson Information Systems A/S. 02-35 58 20. PORTU- 
GAL: Regisconta Sari. 1-56 00 91. SINGAPORE: Far East Office Eqpts Pte Ltd., 745 82 88. SPAIN: Facit, 91-457 90 81. SWEDEN: Ericsson Information Systems Sverige 
AB, 08-28 28 60. SWHVERLAND: Ericsson Information Systems AG, 01-3919711. WEST GERMANY: Ericsson Information Systems GmbH. 0211-61090. 


To save more time, paper loading is fully auto- 
matic with a choice of three different paper paths. 
This enables accurate feed of multi-part invoices 
and paper tear-off without losing a single form. 
You can even hold a continuous form in stand-by 
while cut-sheets are printed. 

To facilitate easy integration in your system, 
both parallel and serial interfaces are provided as 
standard along with Epson FX/JX or IBM Graph- 
ics Printer emulation. You can use the pre-defined 
set-ups to alternate between different hosts, if 

For a demonstration of how the Facit C7500 
and C5500 boost the efficiency of your computer 
system, contact your nearest Facit representative. 

It will be a real timetrip. 


based networks. The NC 516 
is equipped with 16K bytes 
of memory; the half-size 
card plugs into a single ex- 
pansion slot in an IBM PC, 
XT, AT or compatible. 

The system's software in- 
cludes Novell's Netware 2.0 
with drivers for the Univa- 
tion hardware, along with a 
Workstation Shell that the 
company says provides 
transparent access to file 
servers and supports DOS 
commands. An optional 
NETBIOS Emulator supports 
applications written for 
IBM's PC and Token Ring 
networks, and the UNIX soft- 
ware implements the TCP/IP 
protocol, which enables 
nodes on the network to . 
communicate with UNIX or 
other TCP/IP-based systems. 

A five-user system without 
a file server sells for $4665; 
with a 30-megabyte file 
server, $12,260. Contact Uni- 
vation Inc., 12 31 California 
Circle, Milpitas. CA 9503 5, 
(408) 263-1200. 
Inquiry 554. 

Two- and Three- 
Dimensional Business 

EnerCharts lets you 
create up to four bar, 
pie, or line charts on one 
screen in both two- and 
three-dimensional display. 
This business graphics pro- 
gram from Enertronics is 
compatible with over 3 5 
printers and plotters, as well 
as with the Polaroid Palette 
for creating 3 5mm slides or 

With EnerCharts you can 
customize your presenta- 
tions by adding text, lines, 
and symbols; by changing 
font, size, color, slant, angle, 
or text; and by framing lines 
of text or the whole chart. 
On-screen prompts and pop- 
up help screens facilitate 
your editing. 

The program runs on IBM 
PC XTs. ATs, and com- 

EnerCharts presentation graphics package. 

6 File Edit Criteria Question 

Tent Font Control 

Examples: decision 

■■' ' ' '■ '.■ ; ' ■ :: : ; .... ' 






Hn i 










mn 3 




no auto 

Rule: decision 

ill 4 





23 nodes. 








I-— n : auto 

ififl g 




1 ? 





- — LX : noauto 
— XL : noauto 
— • SS : stab 

f— xstab : noauto 
'— staf: mag 

',—■ : noa 
! — L : auto 
j— • M : aut 
' — S : autc 
—MM : stab 

■ — xstab : noauto 


Question window 

Is the Shuttle 
LUithin the desir 


□ No 

ed trajectory enu 



□ V 


.■■'■■ ..:.- — * 

SuperExpert expert-system development interface. 

patibles with at least 384K 
bytes of RAM running MS- 
DOS or PC-DOS 2.0 or 
higher. A color graphics 
card and monitor are re- 
quired. EnerCharts is priced 
at $395. For more informa- 
tion, contact Enertronics 
Research Inc., #5 Station 
Plaza, 1910 Pine St., St. 
Louis, MO 63103, (314) 
Inquiry 555. 

80386-based Board 
Runs LISP 

Gold Hill Computers and 
Al Architects have intro- 
duced an Intel 80386-based 
board for IBM PCs, XTs. ATs. 
and compatibles that runs 
the Golden Common LISP 
(GCL1SP) Developer. The 

board, called the 386 Hum- 
mingBoard, executes GCL1SP 
five times faster than an 
IBM PC AT, the company 
claims, and is tailored to run 
large LISP applications. 

The board's 32-bit 80386 
processor runs at 16 MHz, 
and its directly addressable 
on-board memory is ex- 
pandable to 24 megabytes 
with 1-megabit DRAMs or to 
6 megabytes with 256K-bit 
DRAMs. The HummingBoard 
offers 32-bit data paths, 2K 
line high-speed cache 
memory, and multibuffered 
nonsuspensive I/O that 
enables it to compute in 
parallel with I/O operations, 
the company says. Also pro- 
vided is an interface for 

sharing expanded memory 
with the computer's base 
processor, as well as op- 
tional support for Intel's 
80287 or 80387 floating- 
point coprocessor. 

The GCL1SP 386 Devel- 
oper that runs on the board 
includes a compiler, an in- 
terpreter, a GMACS editor, 
an on-line help facility, and 
a tutorial. With 6 megabytes 
of RAM and the 386 Devel- 
oper, the HummingBoard 
costs $7000. For more infor- 
mation, contact Gold Hill 
Computers, 163 Harvard St., 
Cambridge, MA 02139, (800) 
242-5477 or (617) 492-2071; 
or AI Architects Inc., One 
Kendall Square, Suite 2200, 
Cambridge, MA 02139, (617) 
Inquiry 556. 

Development Package 
with Spreadsheet-like 

SuperExpert is an expert- 
system development 
package written by Donald 
Michie's group at the Turing 
Institute in Glasgow, Scot- 

With SuperExpert, you use 
a spreadsheet-like interface 
to enter and adjust informa- 
tion. You can enter a set of 
examples and let Super- 
Expert induce its own rules. 
And the query system is in 
natural language, so non- 
experts can understand it. 

The program runs on IBM 
PCs, XTs, ATs, and com- 
patibles that use PC-DOS or 
MS-DOS 2.0 or higher and 
have at least 2 56K bytes of 
RAM. An Apple Macintosh 
version is also available. 

SuperExpert comes in 
three levels. The most 
powerful version is Level 3 
($1199), which lets you enter 
up to 1000 examples for 
each problem, up to 50 
logical or integer attributes 
per problem, and up to 
eight levels of attribute sub- 
problems. Level 2 ($599) lets 

34 B YTE • OCTOBER 1986 

Inquiry 207 tor End-Users. 

Inquiry 208 for DEALERS ONLY. — ♦ 

Clipper is the fastest dBase III and 
dBase III Plus™ compiler available. 
Nothing else comes close. When 
performance counts, experts rely 
on Clipper for more speed, more 
power, and more creative freedom. 
You can, too. Call for details. 

• Clipper compiled programs 
run 2 to 20 times faster. 

• No royalties. runtime fees. 

• Source code security. 

• User defined functions. 

• Arrays. 

• Simple menu commands. 

• Context sensitive help can he 
included with programs. 

• More fields; more memory 

• Call C and Assembly programs. 

• Complete debugging facilities. 

• Multiple file relationships. 

•IBM PC, XT, AT, 3270 

• Multiuser capabilU 


•I* ■■• .i. 
mi ■ «■'' 

' a ^"V- .-. L * *!>■ » *~ t **, ' *j 

!T*»*W SLA ^ *•*-«<** 




Nantucket Corporation 

5995 South Sepulveda Boulevard 

Culver City, California 90230 

(213) 390-7923 

Outside California call toll-free: 


dBase, dBase III, and dBase III Plus are trader 

of Ashton-Tate, Inc. 

IBM PC, XX AT, and 3270 are trademarks 

of International Business Machines Corporation. 

Clipper and Nantucket are tradei 

of Nantucket Corporation. 


you enter up to 200 ex- 
amples per problem, up to 
31 logical or integer at- 
tributes per problem, and 
up to four levels of attribute 
subproblems. With Level 1 
($199). you can enter up to 
50 examples per problem, 
up to 31 logical or integer 
attributes per problem, and 
up to two levels of attribute 

For more information, con- 
tact Softsync Inc.. 162 
Madison Ave.. New York, NY 
10016. (212) 685-2080. 
Inquiry 557. 

CADKEY Version 2.1 

CADKEY. a computer- 
aided design and draft- 
ing system for IBM PCs and 
compatibles, is enhanced 
with new font files, entity 
grouping, and two- and 
three-dimensional cubic 
parametric splines. The new 
version supports high- 
resolution color graphics 
cards, color printers, and 

Version 2.1 costs $2695. It 
requires a minimum of 51 2K 
bytes of RAM, a color 
graphics card, and an input 
device. For more informa- 
tion, contact Micro Control 
Systems Inc.. 27 Hartford 
TUrnpike. Vernon. CT 06066. 
(203) 647-0220. 
Inquiry 558. 

Imagraph's Hi-Res 
Graphics Boards 

Imagraph Corp. has re- 
leased the Imaging series 
of high-resolution graphics 
controllers and a display 
adapter that works with the 
controllers. Based on the 
Hitachi HD-63484 Advanced 
Graphic Chip, most of the 
controllers consist of a 
single board that plugs into 
an IBM PC. XT. AT, RT. or 
compatible. The boards can 
display 8- to 24-bit two- and 
three-dimensional shaded 
images, as well as 8- to 
12-bit gray shaded medical 

Enhanced CADKEY design and drafting package. 

The controllers are avail- 
able with five display resolu- 
tions: 512 by 480, 640 by 
480, 768 by 480, 768 by 
576, and 1024 by 1024. 
Each resolution offers pixel 
depths ranging from 8 to 24 
bits per pixel and provides 
a programmable palette of 
16.8 million colors. All of 
the boards support a dis- 
play refresh rate of 2 5/30 
Hz interlaced; a 60-Hz non- 
interlaced refresh rate is 
also available. 

Priced from $1995 to 
$3495, the boards feature a 
draw rate of 40.000 vectors 
per second and an image 
update rate of 5 million 
8-bits/pixel per second; ac- 
cording to the company, this 
is equivalent to loading a 
512 by 512 by 8 display buf- 
fer at 20 frames per second. 
Software drivers for Media 
Cybernetics' Halo and GSS's 
VDI are available. 

The company's Single- 
Monitor Graphic Adaptor 
(SGA) board, which sells for 
$895. is compatible with the 
IBM Color Graphics Adapter. 
The SGA lets you combine a 
CGA monitor and high- 
resolution monitor in a 
single system and enables 
you to switch between CAD 
and CGA-compatible soft- 
ware via software com- 

mands. The board accepts 
RGB video signals; its 
horizontal scan rate is 50 
kHz or 64 kHz. For more in- 
formation, contact Imagraph 
Corp., 400 West Cummings 
Park, Suite 3600, Woburn, 
MA 01801, (617) 938-5480. 
Inquiry 559. 

Management on 
the Apple 

Compusec is a portfolio 
management program 
for the Apple II family that 
sells for $79.50. It performs 
18 functions automatically, 
according to the manufac- 
turer. Some of the functions 
include calculating com- 
pound growth rates between 
any two earnings-per-share 
figures, calculating years re- 
quired to earn back market 
price, showing daily volume, 
and recording the date and 
time of the quote. 

Compusec requires one 
disk drive, but you do not 
need a printer, as the pro- 
gram gives you the option 
of viewing reports instead 
of only printing. For more 
information, contact Com- 
punetics Inc.. 6601 River 
Rd., Bethesda. MD 20817. 
(301) 320-5820. 
Inquiry 560. 

Webster's New 
World Writer 

A word processor, 
thesaurus, and spelling 
checker are what you get 
with Webster's New World 
Writer. The on-line thesaurus 
has more than 120,000 
synonyms and phrases. The 
word processor offers a 
graphics key, so you can 
draw lines and boxes 
around your text, and 
another key recovers copy 
you've accidentally deleted. 
You'll need an IBM PC. XT, 
AT, or compatible with at 
least 2 56K bytes of RAM 
and MS-DOS or PC-DOS 2.0 
or higher (3.0 with an AT). 
Two floppy disk drives or 
one floppy and one hard 
disk drive are required, 
along with an 80-column 
color or monochrome 
display. With an IBM 
Enhanced Graphics Adapter, 
the program can support a 
43-line display. The list price 
is $150. Contact Simon & 
Schuster Computer Software. 
Gulf & Western Building, 
One Gulf & Western Plaza, 
New York, NY 10023. (212) 
Inquiry 561. 


WordPerfect Corp.'s 
WordPerfect version 
1.1 includes an install pro- 
gram, a 50,000-word speller, 
and support for proportional 
printing. The word speller 
checks a word, page, or 
document and lists a variety 
of spellings to help you find 
the correct one. 

WordPerfect 1.1 runs on 
the Apple He and He with 
128K bytes of RAM. The 
price remains at $179. Con- 
tact WordPerfect Corp., 266 
West Center, Orem, UT 
84057, (801) 227-4020. 
Inquiry 562. 


36 B YTE • OCTOBER 1986 



Admit it You're intrigued 
with the idea of C programming. 
You may be working in BASIC, 
Pascal or Assembler now But 
you're drawn to the power, por- 
tability and flexibility of C. And if 
money is what motivates you, 
imagine having it all for just $75 
with Mark Williams Let's C® 


Let's C is no mere training 
tool. It's a complete, high quality C 
compiler. With the speed and code 
density to run your programs fast 
and lean. It won't get you side- 
tracked on some quirky aberration of C; Let's C supports 
the complete Kernighan & Ritchie C language-to the 
letter. And it comes from the family of Mark Williams 
C compilers, the name chosen by DEC, Intel, Wang and 
thousands of professional programmers. 


Let's C doesn't stop with being a high performance 
C compiler. It includes utilities you'd expect to pay extra 
f or-like a linker and assembler plus the MicroEMACS full 
screen editor with source code included. Having the 
source code not only allows you to customize the editor, it 
offers a close up, fully commented view of C programming 
at its best. 


"Let's C is an inexpensive, high-quality program- 
ming package... with all the tools you will need to 

create applications." 

-William G. Wong, BYTE, August 1986. 

1 'Let's C is a thoroughly professional C 
environment loaded with tools and pro- 
gramming utilities . . . another fine Mark 
Williams product." 
-Christopher Skelly, COMPUTER 
LANGUAGE, February 1986 

^ , l~ "The performance and 

V *fc; documentation of the $75 
)\ Let's C compiler rival those of 

C compilers for the PC currently 
being sold for $500... 
highly recommended ..." 
-Marty Franz, PC TECH 
JOURNAL, August 1986 



• For the IBM-PC and 

• Fast compact code plus 
register variables 

• Full Kernighan & Ritchie C 
and extensions 

• Full UNIX compatibility and 
complete libraries 

• Small memory model . 

• Many powerful utilities includ- 
ing linker, assembler, archiver, 
cc one-step compiling, egrep, 
pr, tail, wc 

• MicroEMACS full screen 
editor with source 

• Supported by dozens of third 
party libraries 

• Upgradeable to C Program- 
ming System for large scale 
applications development 

• Not copy protected 

Let's C Benchmark Done on an 

IBM-PC/Xi; no 8087. 

Program: Floating Point 

from BYTE, August, 1983. 
Exec Time in Seconds 
Let's C 134 

MS 4.0 147 





Invest another $75 and you've got 
Mark Williams revolutionary source level 
debugger, csd lets you bypass clunky 
assembler and actually debug in C. 
That's a big help when you're learning 
C and indispensable when you're 
programming, csd combines the 
interactive advantages of an inter- 
preter with the speed of a compiler, 
slicing development time in half. This is how Byte Maga- 
zine summed it up: "csd is close to the ideal debugging 
environment." William G. Wong, BYTE, August 1986 


If there's any doubt that now's the time to get your 
hands on the power of Q consider Mark Williams 60-day 
money back guarantee. You can't lose. But with Let's C 
and csd, imagine what you could gain. 

Ask for Let's C and csd at your software dealer's, in 
the software department of your favorite bookstore, 
through the Express Program at over 5500 Tandy stores 
or order now by calling 1-800-MWC-1700 * 

In Illinois call 312-472-6659 




1430 West Wrightwood, Chicago, Illinois 60614 

© 1986, Mark Williams Company 

Let's C is a registered trademark of the Mark Williams Company 

UNIX is a trademark of Bell Labs. 

Inquiry 183 




S-100 Board 
Based on 80186 

The Thunder Plus 80186, 
an S-100-bus single- 
board computer, runs on an 
8-MHz 80186 microproces- 
sor. The board is equipped 
with I megabyte of zero- 
wait-state memory, two 
RS-232C serial ports, a 
parallel port, and a floppy 
disk controller that can con- 
trol 8-, 5H-, and 314-inch 
drives. Available as options 
are a 10-MHz processor and 
an 8087 math coprocessor. 
The board, which sells for 
$1195, comes with Concur- 
rent DOS. For CAD applica- 
tions, the company also sells 
fully configured systems 
based on the Thunder Plus. 
Contact Lomas Data Prod- 
ucts Inc., 182 Cedar Hill St., 
Marlboro, MA 01752, (617) 
Inquiry 563. 

XT Compatible 
with Voice Control 

Microphonics Technology 
has announced the 
XT-compatible computer 
that incorporates the com- 
pany's Pronounce voice- 
control system. The Pro- 

nounce system gives you the 
ability to operate PC-DOS 
and MS-DOS software using 
spoken commands. 

Priced at $2495, the com- 
puter operates at speeds 
from 4.77 to 14 MHz. Stan- 
dard features include a 
20-megabyte hard disk and 
a 5^-inch floppy disk drive. 
A monochrome graphics dis- 
play adapter. AT-style key- 
board, and internal Hayes- 
compatible 1200-bps 
modem are also included. 
For $199, you can upgrade 
the modem to 2400 bps 

The computer provides 
communications functions 
such as automatic redialing 
of busy numbers, password 
security, call progress tone 
detection, and an electronic 
mailbox buffer. A Touch-Tone 
decoder enables the com- 
puter to accept data input 
from Touch-Tone phones. 
With an optional speech 
synthesizer connected to the 
computer's audio input jack, 
the system can read mes- 
sages to callers at remote 
locations. Using the concur- 
rent software provided, you 
can create voice macros that 
perform like keyboard 
macros but instead are in- 
voked with words. 

Contact Microphonics 
Technology Corp., 25 37th 

St. NE, Suite B, Auburn, WA 
98002, (800) 32 5-9206. 
Inquiry 564. 

AT Compatible 
Equipped for Color 

MicroDirect has intro- 
duced the SST 286/C. 
an IBM PC AT-compatible 
computer with full color 
capabilities. Priced at $4786, 
the 6- or 8-MHz machine 
comes with an EGA-compat- 
ible graphics adapter, an 
NEC Multisync color monitor, 
and an NEC P56 XL 24-pin 
dot-matrix color printer. 

Standard features of the 
base model include I mega- 
byte of RAM. a 1.2-mega- 
byte floppy disk drive, and a 
30-megabyte hard disk drive. 
'Iwo serial ports, a parallel 
port, and eight expansion 
slots are also standard. 

The computer is bundled 
with PC-DOS 3.1; also in- 
cluded in the base price is a 
one-year warranty and on- 
site service contract. Accord- 
ing to the company, the 
computer is compatible with 
software and networks de- 
signed for the IBM PC AT. 
Contact MicroDirect Inc., 180 
Bent St., Cambridge. MA 
02141, (617) 494-5300. 
Inquiry 565. 

Multibus Board 
Runs on NEC V30 

Comark's MV30/3 5 is an 
8-MHz Multibus single- 
board computer that fea- 
tures a NEC V30 micropro- 
cessor and up to I mega- 
byte of dual-ported parity- 
checked RAM. The system 
provides sockets for an 
8087 floating-point co- 
processor, an 8089 DMA 
controller, and four 28-pin 
EPROMs (up to 2 56K bytes). 
Its I/O support includes two 
16-bit-wide SBX connectors 
and programmable parallel 
and serial ports. 

Other standard features in- 
clude three independent 
counter/timers, a program- 
mable interrupt controller, a 
programmable PROM dis- 
able, on-board status LEDs, 
and a 4-bit page register. 
The MV30/3 5 is compatible 
with Intel's iSBC 8630 and 
iSBC 863 5: it is also avail- 
able with Concurrent DOS 
and a 10-MHz processor. 

With 128K bytes of RAM. 
the board costs $1067; with 
2 56K bytes, $1139; and with 
1 megabyte, $1355. For 
more information, contact 
Comark Corp.. 93 West St., 
P.O. Box 474. Medfield, MA 
02052, (617) 359-8161. 
Inquiry 566. 


I/O Interface 
for Apple He 

The Simple Interface He 
System lets you connect 
Apple He computers to a 
variety of test and measure- 
ment devices. Priced at 
$46.95. the system consists 
of a plug-in card and exter- 
nal interface unit and op- 
tional special-function condi- 
tioner boards. 

The interface enables you 
to connect up to eight 
switches and eight loads, in- 
cluding lamps, relays, and 
small motors. The card plugs 

into a slot in the computer; 
connections to various 
devices are made through 
signal-conditioning circuits 
that are housed in a car- 
tridge case connected to the 
card with a cable. The unit 
can be operated with BASIC 
or machine language pro- 
grams and is accompanied 
by a sample program disk. 

Available plug-in condition- 
ing boards include opto- 
isolated I/O conditioners, 
terminal strip boards, relay 
output boards with up to 

7-amp control capability 
3-channel 8-bit A/D con- 
verters, and temperature 
sensors. Contact Proteus 
Electronics Inc., RD 2. 
Spayde Rd.. P.O. Box 693. 
Bellville, OH 44813, (419) 
Inquiry 567. 

Hard Disks 
for Laptop PCs 

The Diskit Portable Series 
of hard disk drives works 
with the Zenith Z-171, Kay- 
pro 2000, and IBM PC Con- 

vertible portable computers. 
The series features an auto- 
booting 20-megabyte hard 
disk with battery backup 
and an average access time 
of 65 milliseconds. 

The Z-l 7 1-compatible 
drive plugs into an expan- 
sion port on the computer 
and works on AC power or 
with an optional DC adapter. 
Its controller lets you add a 
second drive or drives with 
a capacity of up to \80 
megabytes. The Kaypro-com- 
patible drive works with 100/ 

38 BYTE • OCTOBER 1986 




If you've tried your hand at 
developing applications on the Atari 
ST, you know the problem. Pro- . 
gramming tools aren't only hard to 
come by, they're hard to use. One 
might even say primitive. But now 
for some enlightening news: you 
can have all the power, portability 
and versatility of the C language 
from a leader in professional C pro- 
gramming tools, Mark Williams. 


The Mark Williams C compiler 
produces fast, dense code and supports the 
complete Kernighan & Ritchie industry stan- 
dard C. You'll have access to GEM's AES and VDI 
libraries for programs using graphics, icons and the 
Atari mouse. And Mark Williams C lets you take 
advantage of the full 16 megabytes in Atari's 68000 


Mark Williams C is loaded with everything you'll 
need for professional development. Bring the power 
of the UNK environment to your Atari ST with our 

?^ Jj^ \ W> andrecomp 

S^^^/^Mr affectedl ? r 

o:^~ r- 


C compiler 

• Complete Kernighan & 
Ritchie C plus extensions 

• Up to eight register variables 

• Full access to AES and VDI 
librariesfor programs using 
graphics, icons and mouse 

• Complete UNIX-compatible 
librariesalloweasy portability 
to and from UNIX development 

• Over 300 Atari-specific 

• One-step compiling, linking 
with cc command 

• English error messages 
•Lint-like error checking 

Microshell Command Processor, 

powerful UNIX style shell includes 

I/O redirection, pipes, command 


MicroEMACS Full Screen Editor 

with commented source code 


Make Program Building Discipline 

Complete symbolic debugger 

with single-step, breakpoints and 

stack traceback 

Assembler, linker and archiver 

Powerful Utilities Package: egrep, 

sort, diff, cmp, pr, tail, uniq, wc 

and more 

Over 600 pages of documentation 

including 1 20 sample C programs 

Not copy protected 


$179 95 


Microshell Command Processor 
including pipes, I/O redirection and 
more. Edityour program with the 
highly acclaimed MicroEMACS full 
screen editor. Accelerate and simplify 
compiling with make which finds 
and recompiles only those modules 

your changes. Then, 
when you're ready for debugging, 
call on our db Symbolic Debugger 
with single step, breakpoint and 
stack traceback functions. Over 40 
commands, including a linker and 
assembler, provide a total development 
package foryour Atari ST. 


Mark Williams C for the Atari ST is part of our growing 
line of C compilers. A line that includes the C compiler 
chosen by DEC, Intel, Wang and thousands of profes- 
sional programmers. Now our Atari C compiler is 
earning its own reputation: 

"Finally a great C compiler that exploits the power 
of the ST-Sigmund Hartmann, President, Atari 
Software Group 

'The all-around best choice for serious software 
development on the ST.' -Douglas Weir of ANALOG 


Mark Williams C is just what your Atari ST was 
made for powerful, professional 
programming. So now that you 
can have Mark Williams C for just 
$ 179.95, what are you waiting for? 

Ask your Atari dealer about 
Mark Williams C or order today by 
calling 1-800-MWC-1700.* 

•In Illinois call: 312-472-6659 




1 430 West Wrightwood, Chicago, Illinois 60614 

© 1986, Mark Williams Company 

UNIX is a trademark of Bell Labs. Inquiry 184 

AT Power, Toshiba-Style. 


Try tucking this into a drawer 
when you're done! Until now, you 
had to be tied to your desk in a 
tangle of cables and hardware to 
get AT power. Toshiba's T3100, 
on the other hand, puts AT perfor- 
mance anywhere you want. 


• IBM PC-AT compatible 

• 80286 processor, running at 8MHz 
or 4 MHz 

• 640KB RAM, extendable to 2.6MB 

• Built-in 10MB hard disk 

• Built-in 720KB 3 J /2" diskette drive 

• MS-DOS 2.11 operating system 

• High-resolution gas plasma display 

• IBM Color Graphics Adapter (CGA) 

• 80 x 25 character display 

• 640 x 400 bit-mapped 
graphics display 

• RGB, parallel, serial and external 
diskette drive ports 

• Carrying case, MS-DOS,™ 
BASIC included 

• Full-sized 81-key keyboard 

• 110/220 VAC switch-selectable 
power supply 

• 12.2" W x 3.1" H x 14.2" D 

• All this— and only 15 pounds 

The Toshiba T3100. 

Toshiba teclinology improves on AT 
functionality: The T3100 gives you the 
power of an IBM® PC-AT™ in a lean, 
15-pound computer that looks superb on 
your desk, and slips into a drawer when 
you don't need it. Take it home, take it 
to a meeting, take it around the world— 
wherever your work takes you. 

Don't let its size fool you. 

The T3100 is less than a third the size 
of the Compaq™ Portable II, yet every 
bit as powerful. It uses the same 80286 
microprocessor as the AT, and is fully 
IBM-compatible, so you can share data 
with the other desktop computers in 
your office. The T3100's 10MB internal 
hard disk gives you ample storage for 
sophisticated applications. A dual-voltage 
power supply lets you plug in and go to 
work just about anywhere in the world. 
And Toshiba built in an advanced gas 
plasma screen, to give you the clarity 
and brightness of a CRT display— 
without the bulk. 

"Big" system expansion options. 

Like any full-function desktop system, 
the T3100 grows with your computing 
needs. Toshiba offers a full line of internal 

■\;-.: ■:•;■•.■::?•■•.:•.. 

Compact is as compact does: The T3100 
is less than a third the size of the Compaq 
Portable II. 

More memory for 
more applications. 

The T3100's full 640KB RAM lets 
you work with the most popular IBM 
PC/XT™ and AT software: Integrated 
financial and analysis programs, large 
spreadsheets, lengthy documents, elec- 
tronic filing and more. A built-in 720KB 
diskette drive handles the new industry 
standard 3 1 //' diskettes. Each IBM- 
compatible pocket-sized disk holds twice 
as much information as a conventional 
5W diskette! And you can easily transfer 
data to and from other desktop compu- 
ters using Toshiba's optional external 5 l A" 
diskette drive. 

Trademarks: PC-AT, PC/XT— International Business Machines Corporation; 
Compaq— Compaq Computer Corporation; MS-DOS— Microsoft Corporation. 
Registered Trademarks: IBM — International Business Machines Corporation; 
Hayes— Hayes Microcomputer Products, Inc.; SuperKey andSideKick— 
Borland InteniatioiKil, Inc. 

Software, everywhere: The T3100 runs 

the most popular applications written for the 

IBM PC/XT and AT. 

and external options, including an expan- 
sion chassis with 5 IBM-compatible slots, 
and an internal 300/1200 bps Hayes®- 
compatible modem. 

The next generation of computing 
is here. And it sure would look 
great on your desk. Or away from it. 

Desktop computing will never be 
quite the same again, thanks to Toshiba's 
advanced CMOS and proprietary gate 
array LSI technology. The T3100 is 
backed by our reputation for high quality 
electronics, and by our 110-year com- 
mitment to technological excellence. 

See where desktop AT power is 

The T3100 is here now! Call 


for your nearest 
Toshiba dealer. 

and SuperKey. 

In Touch with Tomorrow 


TOSHIBA AMERICA, INC., Information Systems Division 



220-volt AC power or with a 
cigarette lighter adapter. 

Retail prices for the drives 
range from $1095 to $1295. 
For more information, con- 
tact Systems Peripherals 
Consultants, 9747 Business- 
park Ave., San Diego, CA 
92131, (619) 693-8611. 
Inquiry 568. 

Plug-in IEEE-488 

Designed for test and 
measurement applica- 
tions, the BusMate instru- 
ment controller enables 
computers with an RS-232C 
or RS-422 serial port to con- 
trol up to 14 instruments. 
The $695 unit contains firm- 
ware that enables it to 
operate as an IEEE-488 bus 

controller and run programs 
written in BASIC. FORTRAN, 
Pascal, and other languages. 
The controller accepts the 
instructions you write and 
generates the appropriate 
IEEE-488 control commands 
and codes; a demonstration 
disk and instruction manual 
are packaged with the unit. 
For more information, con- 
tact ICS Electronics Corp., 
2185 Old Oakland Rd. San 
Jose, CA 95131, (408) 263- 
Inquiry 569. 

Peachtree's Hard Disk 
for the Mac Plus 

Peachtree Technology's 
S-20Plus hard disk drive 
offers 20 megabytes of stor- 
age capacity for the Apple 

Macintosh Plus. The external 
drive connects to the com- 
puter's SCSI port and pro- 
vides a controller and self- 
diagnostic capabilities. Retail 
price for the drive is $1395. 
For more information, con- 
tact Peachtree Technology 
Inc., 3120 Crossing Park, 
Norcross, GA 30071. 
Inquiry 570. 

Laser Printer 

Centronics announced its 
first laser printer, the 
PagePrinter 8, which prints 
at a rate of eight pages per 
minute. The standard model 
comes with 2 56K bytes of 
memory, which enables you 
to print 3 square inches of 
graphics at a resolution of 

300 by 300 dots per inch. 
To print a full page of 
graphics at 300 by 300 dpi, 
you can add a memory 
board that upgrades the 
printer's RAM to 1.5 mega- 

The $2495 printer offers a 
choice of three interfaces- 
parallel, serial, and IEEE- 
488— that come on plug-in 
modules. The resident font 
is Courier 10; other fonts 
and character sets are avail- 
able on plug-in cards. Stan- 
dard emulations include 
Diablo 630 and Epson 
FX-80, with Diablo 630 ECS, 
IBM ProPrinter, and IBM 
Graphics Printer emulations 
available as options. Contact 
Centronics Data Computer 
Corp., One Wall St., Hudson, 
NH 03051, (603) 883-01 JJ. 
Inquiry 571. 

A D D - I N S 

Boards Combine 
2400-bps Modem, 
Display Adapter 

Emulex's Persyst Division 
is selling enhancement 
boards for IBM PCs. XTs, 
ATs, and compatibles that 
combine communications 
and display capabilities on a 
unit that holds a 2400-bps 
modem, a display adapter, a 
parallel port, and a clock/ 
calendar. Modem Combo 
cards are offered in two ver- 
sions: the Modem Mono 
Combo, which provides a 
monochrome display 
adapter and lets your 
machine run software writ- 
ten for IBM's CGA, and the 
Modem Color Combo, an 
IBM-compatible color 
display adapter. 

The async full-duplex 
modem is compatible with 
the Hayes Smartmodem and 
responds to the AT com- 
mand set. The serial port is 
dedicated to the modem. 
Communications parameters 
are set using software. 
Because no jumpers are 

needed to set parameters, 
you can configure your com- 
puter using a batch file, Per- 
syst says. Both modems 
have a parallel printer port 
that's compatible with a 
Centronics or Dataproducts 
interface. You can configure 
the bidirectional I/O port for 
custom devices that require 
two-way communications. 

The monochrome version 
supports a 7- by 9-dot char- 
acter in a 9- by 14-dot field 
and provides an 8-character 
by 2 5-row display. The color 
display adapter supports a 

7- by 7-dot character in an 

8- by 8-dot field. Both 
boards include IBM's 256- 
character set and work with 
a light pen. 

Suggested list price for 
each Modem Combo card is 
$899. Contact Emulex Corp.. 
3 545 Harbor Blvd., P.O. Box 
672 5, Costa Mesa, CA 
92626, (714) 662-5600. 
Inquiry 572. 

Recoverable RAM 
Disk for Mac Plus 

MacMemory's MaxSave 
recoverable RAM-disk 
system for the Macintosh 
Plus combines a card with 
RAM disk and print spooler 
software. In the event of a 
system crash, the company 
says, you only have to press 
the computer's reset button 
to recover the RAM disk's 
data; MaxSave intercepts the 
reset signal to preserve 
RAM disk information while 

The unit plugs into the 
Mac's ROM sockets without 
modification and uses the 
machine's internal memory. 
It can fully use 1 -megabyte 
or larger memories. 

The system's MaxRAM 
software automatically cre- 
ates the RAM disk when 
you boot up the machine 
and copies your files to it. 
MaxRAM works with hard 
disks, 400K- and 800K-byte 
drives, and memory sizes 
from 512K bytes to 4 mega- 
bytes. MaxPrint, a desk- 

accessory print spooler, 
handles graphics as well as 
text. It enables you to spool 
several documents at once 
and change applications 
while printing. It can also 
spool to a hard disk. 

The MaxSave System sells 
for $119. You can buy Max- 
RAM and MaxPrint as a 
separate package for $49.95. 
Contact MacMemory Inc., 
473 Macara Ave., Suite 701, 
Sunnyvale, CA 94086, (408) . 
Inquiry 573. 

Card, Software 
Let PCs Read 
Apple Disks 

The Matchpoint-PC pack- 
age, which includes a 
card and software, lets IBM 
PC users read from and 
write to Apple DOS, Pro- 
DOS, SOS, and CP/M disks. 
The half-size card fits in a 
PC expansion slot and in- 


42 BYTE • OCTOBER 1986 

Inquiry 262 — ► 

Where to look to find 
over 600 software programs* 

Introducing the 1987 
edition of Radio Shack's 
software reference 

Now there's no more searching 
for the "right" program. The 
new 1987 Radio Shack Software 
Reference Guide is all you need 
for one'Stop shopping. You'll find 
hundreds of programs for all our 

computers — from XENIX® and 
MS-DOS® lines to portables. 

This catalog features the most 
comprehensive software selection 
available. Essential business pro* 
grams such as accounting, data- 
base management, and business 
graphics are available, as well as 
a variety of word-processing, 
entertainment and educational 
software programs. 


Radio Shack* 


Reference Guide 

Over 600 programs listed 
by category and available 
off the shelf or through our 
Express Order" service. 

Radio /hack 










WeVe got the program for 
your specific need 

There is a variety of industry- 
specific programs from which you 
may choose regardless of whether 
you are a doctor, a lawyer or 
other professional. 

And of course, there are dozens 
of programs and utilities specifi- 
cally for progammers, including 
the popular XENIX Development 
System, and Microsoft MS-DOS 
languages like COBOL, Fortran, 
and Pascal. We also included 
such utilities as Superkey™, 
which customizes and automates 
your software, and XMENU™, a 
XENIX utility that gives your 
system a menu-driven interface 
for the system administrator. 

We offer you the software you 
need most — whatever the applica- 
tion. So visit a Radio Shack Com- 
puter Center today — it's your 
one-stop software store. 

Radio /hack 

The Technology Store" 


Send me an RSC-18 Software Guide. 

Mail To: Radio Shack, Dept. 87-A-297 
300 One Tandy Center, 
Fort Worth, TX 76102 

Tandy/Registered TM Tandy Corp. XENIX and 

MS-DOS/Registered TM Microsoft Corp. Superkey/TM 

Borland International. XMENU/TM Telexpress. 


A D D - 1 N S 

eludes connectors and cable 
to hook it to the floppy disk 

Besides Matchpoint soft- 
ware, the package comes 
with UniForm-PC (version 2), 
which makes the computer 
read CP/M disks as if they 
were PC-DOS disks. Used 
with the Matchpoint board, 
it also lets you use Apple 
SoftCard and North Star 
CP/M disks on a PC. 

MatchPoint-PC retails for 
$195. Contact Micro Solu- 
tions Inc.. 125 South Fourth 
St., DeKalb. 1L 60115, (815) 
Inquiry 574. 

Memory Upgrade 
for Atari 520ST 

EZRAM 520, a 512K-byte 
memory upgrade for 
Atari's 520ST. raises RAM to 
I megabyte. 'Ierrific Periph- 
erals says the kit is designed 
for simple installation. You 
make the 13 solder connec- 
tions on a template, not on 
the motherboard. The kit 
comes with a high-speed 
digital signal cable, and the 
memory banks are fully de- 
coupled with high-frequency 
ceramic capacitors. 

The upgrade kit has a sug- 
gested retail price of $199 

and is covered by a 180-day 
warranty. Contact 'Ierrific 
Peripherals, 17 St. Mary's 
Court, Brookline, MA 02146. 
(617) 232-2317. 
Inquiry 57 5. 

Multiuser Converter 
Adds Serial Ports 

Control Electronics has a 
line of multiuser boards 
compatible with Software 
Link's MultiLink and with 
UNIX-based systems. The 
MultiSerial-4 and Multi- 
Serial-8 add multiuser 
capabilities to IBM PC ATs 

and compatibles through 
the use of fully wired 2 5-pin 
RS-232C asynchronous 
ports. Each serial port can 
support either a modem or 
a terminal. The ports are 
fully programmable for start 
bits, stop bits, parity bits, 
and data-transmission rate. 
You can address as many as 
64 ports. 

The MultiSerial-4 port 
board lists for $2 59; Multi- 
Serial-8 lists for $3 59. Con- 
tact Control Electronics Inc., 
374 50 Enterprise Ct., Farm- 
ington Hills, Ml 48018, (313) 
Inquiry 576. 


Compiler for the 
Atari 520ST and 

Absoft Corp. designed its 
compiler with debugger to 
run mainframe programs 
downloaded to an Atari 
520ST or 1040ST. AC/FOR- 
TRAN is a disk-based com- 
piler, requiring 46K bytes of 
RAM, which enables you to 
develop large programs on 
a standard 256K-byte 

Native object code for the 
MC68000 is generated by 
AC/FORTRAN. Development 
tools support of overlays 
and virtual arrays and 
dynamic linking of programs 
at run time. Included are a 
full-screen source-level sym- 
bolic debugger, linker, 
library manager, single- and 
double-precision floating- 
point software, complex 
number support, and a C in- 
terface. According to Absoft, 
there is no limit on code or 
data size. 

AC/FORTRAN is source- 
compatible with Microsoft's 
FORTRAN compiler for the 
Macintosh and AC/FORTRAN 
for the Amiga. The program 
is not copy-protected and 

sells for $199.95. For more 
information, contact Absoft 
Corp., 4268 North Wood- 
ward. Royal Oak, MI 48072, 
(313) 549-7111. 
Inquiry 577. 

C Library 
Support Package 

C Tools Plus consists of 
over 200 functions sup- 
plied in source code that 
run on the Microsoft and 
Lattice 3.0 C compilers. A 
utility is included that for- 
mats the source code 
listings for printing. 

The program supports the 
IBM Enhanced Graphics 
Adapter, and you can create 
applications using more 
than one display adapter 
and monitor at a time. 
Other features include 
screen handling, windows, 
interrupt service routines. 
DOS directory and file 
handling, memory manage- 
ment, and string functions. 

You can write memory- 
resident routines by access- 
ing DOS functions from 
within an interrupt service 
routine. A sample program 
is provided that dumps the 

screen to a disk file. 

To use C Tools Plus, you 
must have an IBM PC, XT, 
AT, or compatible with MS- 
DOS 2.0 or higher, and a 
Microsoft or Lattice 3.0 (or 
later) C compiler. C Tools 
Plus sells for $175. For more 
information, contact Blaise 
Computing Inc.. 2 560 Ninth 
St., Suite 316, Berkeley. CA 
94710, (415) 540-5441. 
Inquiry 578. 

Program in C 

Using English Syntax 

Programming in C is 
possible without know- 
ing C, according to cLine. 
The language cEnglish uses 
English-like syntax and com- 
piles your programs into 
Lattice C-compatible source 

Programs in cEnglish run 
on IBM PCs with MS-DOS or 
PC-DOS 2.0 or higher and a 
hard disk. They also run on 
the AT&T 3B series running 
and XP series running 
XENIX, and the DEC VAX 

The cEnglish Data Base In- 
terface Library's functions 
provide access to C-ISAM 
and compatibility with PC- 
NET and any other MS-NET 

file-sharing system, the com- 
pany reports. The price of 
cEnglish is $79 5. Contact 
cLine Inc., 3550 Camino del 
Rio N, Suite 208, San Diego, 
CA 92108, (619) 281-5593. 
Inquiry 579. 

Pascal Cross 

The CP-97 Pascal Cross 
Compiler for the 8097 
16-bit microcontroller on a 
chip runs on IBM PCs and 
compatibles. The CP (Con- 
trol Pascal) system includes 
a screen editor, cross com- 
piler, interpreter, translator, 
terminal driver, and run-time 
support software. 

Compiler output is in in- 
termediate p-code, which is 
later translated into 8097 
object code. The editor, 
compiler, and interpreter are 
integrated into a single 
menu-driven module. 

The CP-97 system costs 
$200. Contact Allen Sys- 
tems, 2151 Fairfax Rd., 
Columbus, OH 43221, (614) 
Inquiry 580. 


44 BYTE • OCTOBER 1986 

Inquiry 192 — ► 




Artificial intelligence for business 
has arrived in a revolutionary new 
product . . . Guru. 

At last, artificial intelligence designed espe- 
cially for business! Guru brings together expert 
system capabilities of artificial intelligence, 
the productivity of familiar business computing 
tools and the ease of communicating with 
your computer using menus, commands or plain 
English. All available in a single, integrated 

Guru works like human experts, considering 
uncertainties, reasoning through forward 
and backward chaining, asking for more infor- 
mation when needed, and explaining its 

Guru's expert system works hand-in-hand 
with all the familiar business computing tools 
like spreadsheets, statistical analysis, business 
graphics and a programming language, always 
available for both expert consultation and your 
everyday business computing needsr 

Best of all, you won't need to learn LISP or 
PROLOG or buy fancy computers . . . Guru runs 
on your PC and communicates in plain English! 
Guru is artificial intelligence that means business. 

For more information, call or write Micro Data 
Base Systems, Inc./Marketing & Sales, P.O. Box 
248, Lafayette, IN, 47902, 317/463-2581, Telex 
209147 ISE UR. 


mdbs is a registered trademark and Guru Is a trademark of Micro Data Base Systems. Inc., P.O. Box 248, Lafayette. IN. 47902 -r 




TUTSIM Linked 
with FFT 

FANSY is a program that 
analyzes the time re- 
sponse of a TUTSIM model 
on the IBM PC and com- 
patibles. Developed at the 
University of Waterloo in 
Canada, FANSY stands for 
frequency analysis and 

TUTSIM is a computer 
simulation program that 
uses block diagrams to im- 
plement system equations 
term by term. You can vary 
the model design, add or 
delete blocks, change inter- 
connections, and vary 
parameters and values at 
any time during a simula- 
tion. Conversion of a filed 
time response of a TUTSIM 
simulation to the frequency 
domain is done by FFT 

FANSY requires the IBM 
Color Graphics Adapter to 
show gain and phase plots 
versus frequency. Two ver- 
sions of FANSY come on 
one disk: Both run on the 
IBM PC. but one is for the 
PC with an 8087/80287 co- 
processor. FANSY is priced 
at $185. For more informa- 
tion, contact Applied i. 200 
California Ave.. Suite 214. 
Palo Alto. CA 94306. (415) 
32 5-4800. 
Inquiry 581. 

Data Acquisition 
and Display on the 
Apple He and He 

You can perform 
numerical operations on 
large sets of data on an 
Apple Me or lie with Vidi- 
chart-IV The program 
enables you to define four 
data sets of up to 8192 
values, each with its own 
scaling information that 
transforms the raw data into 
physical values in any units 
you choose. 

On a high-resolution 
screen (560 by 192 pixels), 

EE Designer circuit design CAD package. 

you can display up to four 
windows of any size at any 
position. Each plot is 
labeled with numbers and 
text labels along the axes, 
and you can superimpose 
additional labels anywhere 
on the screen. You can plot 
or overlay any data set in 
any window, using dotted or 
solid lines or filled-area 
plots in white on a black 
background. In any window 
you can shift, compress, or 
expand the x or y scale, or 
you can zoom in on a 
region framed by the cur- 
sors. The cursor displays any 
value along a curve. 

You can enter data from 
the keyboard, disk, or joy- 
stick, and output data to the 
screen, disk, or printer. 
Menus list options, and on- 
line help screens are avail- 
able for any commands. The 
program includes utility 
numerical, normalization, 
•baseline definition, and peak 
integration commands. You 
must have an Apple lie with 
a 64K-byte extended 80- 
column card or an Apple 
lie. The price is $165. Con- 
tact Interactive Microware 
Inc., P.O. Box 139. State Col- 
lege. PA 16804-0139. (814) 
Inquiry 582. 

EE Designer 

Visionics announced en- 
hancements to its EE 
Designer CAE/CAD software 
for circuit design and 
printed circuit board layout. 
It now supports the En- 
hanced Graphics Adapter in 
640 by 350 resolution in 16 
colors. And it supports the 
bus version of the Microsoft 
mouse and compatibles as 
well as the serial mouse. 

The $97 5 package runs on 
IBM PCs. Xlfc. ATs. and com- 
patibles. Contact Visionics 
Corp., 1284 Geneva Dr., 
Sunnyvale, CA 94089, (800) 
22 5-5669; in California, (408) 
Inquiry 583. 

Graphics on the 
Atari ST 

CAD-3D is a computer- 
aided design program 
for the Atari 520ST and 
1040ST It can create solid- 
model animation sequences 
and three-dimensional 
scenes in color, with shading 
from adjustable multilight 

The software uses Digital 
Research's GEM interface 
and comes with four sample 
scenes. It is priced at 
$49.95. For more informa- 

tion, contact Antic Publish- 
ing Inc., 524 Second St.. San 
Francisco. CA 94107, (415) 
Inquiry 584. 

Mainframe Statistics 
Package on the 

P-STAT has been con- 
verted from mainframe 
software to a package that 
runs on the AT&T UNIX PC 
(Model 7300). It manages 
and analyzes data by com- 
bining data and file manage- 
ment, data display, statistical 
analysis, survey analysis, and 
report-writing capabilities. 

P-STAT features an on-line 
help facility, an interactive 
editor, flexible data entry 
and validation, relational 
database capabilities, 
macros, and statistical pro- 
cedures. The program con- 
sists of a single source file 
of about 300,000 lines of 
FORTRAN code and costs 
$995. For more information, 
contact P-STAT Inc.. P.O. Box 
AH. Princeton. NJ 08542, 
(609) 924-9100. 
Inquiry 585. 

Uni-CAD for 
MS-DOS Systems 

Xysys announced that 
Uni-CAD. a computer- 
aided design program, is 
now available for IBM PC 
XTs, Afe, and compatibles. 
Uni-CAD supports systems 
with Color Graphics 
Adapters or Enhanced 
Graphics Adapters and one 
monitor, or it will run with 
two screens. 

Uni-CAD requires PC-DOS 
or MS-DOS 2.1 or higher, 
640K bytes of RAM. a 
graphics adapter, and a plot- 
ter. Prices start at $1695. 
Contact Cyber/Source. 24000 
Telegraph Rd., Southfield. Ml 
48034, (313) 353-8660. 
Inquiry 586. 


46 B YTE • OCTOBER 1986 



If time is money, then let us save some for you. The 
new model 9000, using its quick pulse algorithms, can 
program a 2764 in 10 seconds. The 9000 offers 
higher performance than the competition has even be- 
gun to think about. Baud rates to 57,600. Supports 
thru 1024K standard, 8 meg wordwide parts with 
adapter, Cypress proms, mpu's. NO personality 
modules. As with our other programmers, RS- 
232, ASCII data formats, and flexible hand- 
shaking make the model 9000 compatible with 
virtually any computer. Introductory price $749. 

PROGRAMMER The standard by which other 
other programmers are judged. With thousands 
in the field, the time proven 7228 has become 
our most popular programmer. Intelligent al- 
gorithms standard. Programs a 2764 in one min- 
ute. Supports devices thru 512K, mpu's, eeproms 
cmos. NO personality modules. ^_ Price $599 


The 7956 can program eight 
2764's in one minute using intelli- 
gent algorithms. Standard support 
thru 512K, eeproms, cmos, mpu's. A must 
for production emvironments. Available in 

stand alone only configuration for $979 

or with RS-232 interface for $1099 

MODEL 7128 (E)EPROM/MPU PROGRAMMER The programmer that won't die. 
Thousands manufactured since 1982. Supports thru 256K. PRICE REDUCED to $389 
including free PGX communications software, a $95 value. 

MODEL 705 Motorola 68705 family programmer. Transfers object code to 28 and 40 pin 
mpu's. Single key stroke operation $299 

MODEL 7324 PAL PROGRAMMER The 7324 has a built-in compiler. It supports 20 and 
24 pin pals by MMI, NATIONAL, and TI, including the new shared product parts 20S10, 
20RS10,20RS8, 20RS4. It operates stand aloneor via RS-232 with PALX communications 
package. Functionally tests parts after programming and securing. External compilers are 
supported thru JEDEC and AHS object formats $1499 

MODEL 7322 Same as 7324 but no stand alone capability $ 1 249 

PGMX High Speed Communications Package. For IBM PC, AT and compatibles. Bi- 
directional data rates to a scorching 57600 bps. Provides flexible manipulation of Intel Hex 
files, both 8 and 16 bit formats, and binary files. Use with model 9000 $149 

PGX Utility Package. For PCDOS, CPM, TRSDOS, ISIS, MSDOS. Use with 9000. 7956, 
7228,7128 $95 

PALX Utility Package. Provides communication, download of Palasm source, JEDEC and 
AHS objectfilesto models 7324, 7322, 7316pal programmers $95 


You name the cpu, we've got the assembler. Simulators allow target software development 
and testing on your computer. Versions available for PCDOS, MSDOS, CPM. . Start at $250 

ERASERS— We stock both Ultra Violet ACCESSORIES 

CABLES-serial $30, parallel $30, 

custom Call For Quote 
MODEL 481/482/483 8048family 

adapters $98 

MODEL511/5128051 family adapter $174 
MODEL 755/756 8755 adapter ... $135 

SPECIAL REQUIREMENTS? Call Us For A Quote On Custom OEM Programmers. 

Products and Spectronics f o 

r your selection. 



























Run CPM Software 
on Your IBM 
or IBM 


Call GTEK's CPM Hotline 

If you are a CPM user who wants to convert to 
MSDOS or PCDOS or a PC user who would 
like access to the thousands of CPM programs 
in existance, here is the perfect solution to the 
problem: CPMulator from GTEK. 
CPMulator is the only field proven emulator 
which emulates the complete Z-80 instruction 
set. Terminal attribute emulation is Televideo, 
Lear Siegler, or the ANSI standard. CPM 
.COM programs reside under PCDOS and are 
executable under PCDOS as well as 8086 pro- 

Comes complete with COPYCPM, a disk con- 
version utility which allows transferring data 
and programs to and from 54 different CPM 
disk formats. Free CPM utility programs are 
also included. 

For speed use the 8080 CPMulator along with 

Z80 CPMulator. DR5PC-EMZ80... $ 99.00 
8080 CPMulator, DR5PC-EMV205 $ 99.00* 
Z80, 8080 CPMulator, 

DR5PC-EMZV205 $149.00* 

•Requires NEC V20 or V30. 

NEC V20 (5Mhz) $ 12.00 

Single Board Computer 
Model 2010 

• 64 to 256K bytes data or program ram. 

• Use 2764 or 27512 eprom or eeprom 
program memory. 

• Uses single ended 9V @ 500 ma supply. 

• Use 8031. 8032, 8751, 8752 mpu. 

• 40 bit programmable I/O lines. 

• Expansion interface connector. 

• Baud rates to 57,600 baud. 

• Built in 5 volt regulator. 

• Built in rom monitor. 

• Small — 3.5 x 7 inches. 

• 8052 AH basic option. 


OK is $99, 128K is $339, and 256K is $399 


Development Hardware & Software 

P.O. Box 1346, Bay St. Louis, MS 39520 U.S.A. 

(601) 467-8048; TELEX 315814 (GTEK UD) 


Inquiry 128 

GTEK, PALASM, CPM, MS-DOS, PC-DOS, ISIS, TRSDOS, & CPEmulator are registered trademarks. 


IYTE 47 




Design and Paint 
with Atari ST 

The GEM-based package 
PaintPro lets you design 
and paint on the Atari ST. It 
supports up to three active 
windows and comes with 
free-form sketching, lines, 
circles, ellipses, boxes, fill, 
copy, move, spray, zoom, 
undo, and text capabilities. 

PaintPro works with most 
dot-matrix printers, the com- 
pany reports, and it works 
with either monochrome or 
color systems. 

The price of the program 
is $49.95. For more informa- 
tion, contact Abacus Soft- 
ware. P.O. Box 7211. Grand 
Rapids. Ml 49510. (616) 
Inquiry 587. 

Amortization in C 

MicroCost Software an- 
nounced Effortless In- 
terest, an amortization pro- 
gram written in C that runs 
on 64K-byte RAM CP/M-80 
systems or IBM PCs and 
compatibles with PC-DOS or 
MS-DOS 2.0. The company 
reports that the program is 
accurate up to 14 significant 

With Effortless Interest, 
you select daily, weekly, bi- 
weekly, monthly, quarterly 
semiannual, or annual 
payments on a loan, or 
compounding interest on a 
loan. Up to 36 combinations 
of time periods are possible. 
You can also value a month- 
ly payment as an annuity, 
on the assumption of 
monthly payments and com- 
pounding of discounts, for 
as many months as you 

Effortless Interest costs 
$2 5. For more information, 
contact MicroCost Software. 
22015 Marine View Dr. S. 
Des Moines. WA 98198. 
(206) 878-2796. 
Inquiry 588. 

Palantir's window-oriented spelling checker. 

Spell-Check Windows 

Palantir Software's Win- 
dows Spell was created 
for use with Microsoft Win- 
dows, but it will work with 
most windows documents, 
the company reports. 

Windows Spell can check 
spelling in long documents 
while you work on another 
application. It will flash 
when it spots a spelling 
error. The program comes 
with a 65.000-root-word dic- 
tionary, and it will display 
guesses to help you correct 

Suggested retail price of 
Windows Spell is $79.95. It 
runs on IBM PCs and com- 
patibles with 512K bytes of 
RAM. For more information, 
contact Palantir Software, 
12777 Jones RcL Suite 100, 
Houston, TX 77070. (713) 
Inquiry 589. 

Command Control 

The memory-resident 
program Key Print from 
Instant Data Processing Inc. 
lets you send commands to 
keypress. You can set the 
trigger keys and printer 
commands although the 
program has predefined files 
that you can use or recon- 

IDPI claims that the pro- 
gram supports all printers. It 
is compatible with the IBM 
PC family and requires MS- 
DOS or PC-DOS 2.0 or 
higher. The minimum mem- 
ory requirement is 128K 
bytes of RAM. 

Key Print sells for $18. 
For more information, 
contact Instant Data Pro- 
cessing Inc., 411 East Com- 
mercial Way La Habra, CA 
90631. (213) 691-0216. 
Inquiry 590. 

The new products listed in this section of BYTE are chosen from the thousands 
of press releases, letters, and telephone calls we receive each month from 
manufacturers, distributors, designers, and readers. The basic criteria for selection 
for publication are: [a) does a product match our readers' interests? and [b) 
is it new or is it simply a ^introduction of an old item? Because of the volume 
of submissions we must sort through every month, the items we publish are 
based on vendors' statements and are not individually verified. 1/ you want 
your product to be considered for publication [at no charge), send full infor- 
mation about it. including its price and an address and telephone number 
where a reader can get further information, to New Products Editor. BYTE. 
One Phoenix Mill lane. Peterborough. NH 03458. 

Business Database 
for IBM PCs 

TeleMagic! maintains 
your database of con- 
tacts, telling you who to call 
and when, and even dials 
the phone. You can produce 
labels, letters, order forms, 
invoices, packing slips, 
envelopes, phone lists, and 
customer names with one 
keystroke. A scripting feature 
enables telemarketers to run 
through a sales presenta- 
tion, making changes as 
necessary according to the 
customer's response. 

The list price of TeleMagic! 
is $95. Contact Remote Con- 
trol. P.O. Box 2861, Del Mar, 
CA 92014, (800) 992-9952; 
in California, (800) 992-5228. 
Inquiry 591. 

Small Business 

PC Accountant enables 
you to keep track of 
your small-business income 
and expenses. It can print 
and address checks, balance 
your bank accounts, and 
track accounts payable and 
receivable. It can also pro- 
vide reports on income and 
expenses. PC Accountant 
can handle up to 200 names 
and addresses. 200 accounts 
with balances, and 1500 
transactions per month. 
Menus and windows guide 
you through the program. 

You need an IBM PC or 
compatible with 128K bytes 
of RAM. MS-DOS or PC- 
DOS 2.1 or higher, a mono- 
chrome or color monitor, an 
80-column printer, and one 
floppy disk drive. 

The program costs $39.95 
plus $5 shipping. Contact 
Business Applications Inc.. 
3211 Bonnybrook Dr. N. 
Lakeland. FL 33803. (813) 
Inquiry 592. 

48 B YTE • OCTOBER 1986 


October 1986 


PC Expo. McCormick Place II. Chicago, IL. 
Jim Mion, PC Expo. 333 Sylvan Ave., 
Englewood Cliffs. NI 07632, (800) 
922-0324; in New Jersey, (201) 569-8542. 
October 7-9 

ECCO's Sixth Annual Educational 
Computer Fair-The Computer Connec- 
tion: Using the Computer in the Class- 
room, Cleveland. OH. Alice Fredman, 
Educational Computer Consortium of 
Ohio. 1123 S.O.M. Center RcL Cleveland. 
OH 44124, (216) 461-0800. October 9-10 

Sixth Annual Symposium on Small 
Computers in the Arts, Philadelphia, PA. 
Symposium. P.O. Box 1954, Philadelphia, 
PA 19107. October 10-12 

Fifth International Electronic Imag- 
ing Conference & Exhibition, Arlington, 
VA. Conference Management Corp., 17 
Washington St.. P.O. Box 4990. Norwalk. 
CT 06856-4990. (203) 852-0500. 
October 14-15 

Second Annual Conference: Computer 
Technology/Special Education/Rehabil- 
itation, California State University, North- 
ridge. Dr. Harry Murphy, CSUN Office of 
Disabled Student Services, 18111 Nordhoff 
St., Northridge. CA 91330, (818) 885-2578. 
October 16-18 

UNIX Expo. Jacob K. Javits Convention 
Center, New York. NY. National Exposi- 
tions Co. Inc., 49 West 38th St., Suite 12A. 
New York. NY 10018, (212) 391-9111. 
October 20-22 

Infomatics 86. Sheraton Centre. Tbronto, 
Ontario. Canada. Infomatics 86, Interna- 
tional Information Management Congress, 
P.O. Box 34404. Bethesda, MD 20817. (301) 
983-0604. October 20-23 

Second Annual Symposium for Micro- 
computers in Law Enforcement, Jack- 
sonville, FL. Russ Arend, Institute of Police 
Technology and Management, 4 567 St. 
Johns Bluff Rd. S, Jacksonville, FL 32216, 
(904) 646-2722. October 2 1 -23 

Ergodesign '86: THE Evolution of the 
Electronic Workplace, Montreux, 
Switzerland. Ergodesign '86, P.O. Box 122, 
CH-1820 Montreux. Switzerland, tele- 
phone: (21) 63 04 40, telex: 453 2 54 mtx 
ch. October 21-24 

THird Annual Flat Information Dis- 
plays Conference, San Jose, CA. Interna- 
tional Planning Information Inc., 465 Con- 
vention Way, Suite I. Redwood City, CA 
94063, (415) 364-9040. October 22-23 

International Computers & Communi- 
cations 1986-2000, Washington, DC. In- 
ternational Computers & Communications, 
P.O. Box 17392, Washington, DC 20041, 
(703) 476-2604. October 22-25 

Fourth Annual Computer Technology 
for the Handicapped International 
Conference, Minneapolis, MN. Closing 
the Gap, P.O. Box 68, Henderson, MN 
56044, (612) 248-3294. October 22-26 

Medinfo 86: Fifth World Congress on 
Medical Informatics, Washington, DC. 
Medinfo 86, Secretariat: Office of CME, 
George Washington University, 2300 K St. 
NW, Washington, DC 2003 7, (202) 
676-8929. October 26-30 

Fifth Annual Pacific Northwest Com- 
puter Graphics Conference, Eugene, 
OR. Pacific Northwest Computer Graphics 
Conference, University of Oregon Con- 
tinuation Center, I 5 53 Moss St., Eugene, 
OR 97403, (800) 228-6891: in Oregon, 
(800) 824-2714 or (503) 686-3537. 
October 27-28 

Ninth Northeast Computer Faire, 

Boston, MA. The Interface Group Inc.. 300 
First Ave.. Needham, MA 02194, (617) 
449-6600. October 30-November I. 

1986 National Conference-East: Com- 
puters & Reading/Learning Difficulties, 

Philadelphia, PA. Diane Frost, Educational 
Computer Conferences, Dept. N, 1070 
Crows Nest Way, Richmond, CA 94803. 
(415) 222-1249. October 30-November I 

1986 International Workshop on 
FORTH and Its Applications, National 
Taiwan Institute of Technology, Taipei, 
Republic of China. FORTH Interest Group, 
P.O. Box 8231, San Jose, CA 9515 5, (408) 
277-0668. October 31 -November 2 

1/ you send notice of your organization's public 
activities at least four months in advance, we 
will publish them as space permits. Please send 
them to BYTE (Events and Clubs), One 
Phoenix Mill hxm, Peterborough, NH 03458. 


Nashville Macintosh Users Group, c/o 

Clark Thomas, 2305 Ellison Place #C-5, 
Nashville, TN 37203. (615) 327-1757. 

PC-S1G News, 1030 East Duane Ave., Suite 
D, Sunnyvale, CA 94086, (418) 730-9291. 

World Wide ST Users Group. WW STUG, 
77 Kenton Place, Hamburg, NY 14075. 

Satronics Information Exchange 

(satellite TV SIG), Mark Miller, P.O. Box 
52261, Philadelphia, PA 191 1 5. BBS at (21 5) 

Hot Flash (newsletter for UNIX users), 
Unisource Software Corp., Donna Woz- 
nicki, 23 East Street, Cambridge, MA 
02141, (617) 577-8383. 

Southwest APL Users Group (SWAPL), 
Jim Fiegenschue. 120 Oak Grove Circle, 
Double Oak, TX 75067-8461, (214) 

Tinker Atari Computer Enthusiasts 
(TACE), P.O. Box 194 56, Oklahoma City, OK 

Calgary Hyperion User's Group 
(CHUG). David Tansey, 3411-33 Street SE, 
Calgary, Alberta, Canada T2B 0V9. 

Green Country Computer Association, 

Michael S. Keller, P.O. Box 497, Tulsa, OK 

MS-DOS User Group (MUG) o f Olympia, 

Brian Geppert, 1321 Skyridge Street SE, 
Lacey, WA 98503. 

The Carrier (journal of the Telecom- 
munications Users Group), P.O. Box 45254, 
Seattle, WA 98145-0254. 

CodeWorks (magazine devoted to prob- 
lem solving with BASIC), 80-Northwest 
Publishing Inc., 3838 South Warner, 
Tacoma, WA 98409-4698, (206) 475-2219. 

Laserboard, New York's Electronic 
Mac User's Group, Stuart Gitlow, 1212 
Fifth Avenue. Suite 15C, New York. NY 
10029-5210. (212) 831-6413 (voice). 
348-5714 (data). 

the SErfTlNEL (newsletter for TI Profes- 
sional users), Dick Mitch, Box 635, Dunlap, 
CA 93621, (209) 338-2472. ■ 

OCTOBER 1986 -BYTE 49 

Princeton. The 

Here are some of the reasons why 

Full EGA and CGA support. Princeton EGA monitors 
bring you 64 brilliant colors and bright sharp images in 
enhanced graphics mode, with 640 x 350 resolution. 
Your EGA software never looked better. Plus our HX-12E 
and HX-9E automatically switch from EGA to CGA mode, 
when needed. 

Compatibility. Princeton monitors are 100% compatible 
with leading personal computers like IBM®, Compaq®, and 
more. No matter what system you have, there's a Princeton 
monitor that's right for you. 

Quality Image. A .28mm dot pitch (the finest dot pitch of 
all leading EGA displays), bright colors, and sharp 
resolution give Princeton monitors a quality image that 
cannot be beat. 

Easy Viewing and Ergonomlc Design. Princeton 
monitors are designed Tor easy use, too. You get easy 
viewing with the HX-12E's black matrix tube and etched 

nonglare screen. The lines are crisp, the characters sharp, 
and the colors even, so you're more productive. Controls 
are located on the front, where you can reach them. 

Reliability. Princeton monitors are designed and 
manufactured to meet your most demanding needs. Only 
the finest components are used. The result: dependable 
performance day in and day out. 

Value. No other monitor gives you more for the money than 
Princeton. Compare for yourself. Feature for feature there's 
not a better value around. 

Availability. Princeton monitors are as easy to get your 
hands on as they are easy to use. You can find them at 
computer stores around the world. 

Reputation. More and more, people are making Princeton 
Graphic Systems their number one choice in personal 
computer displays. Because people know Princeton delivers 
the ultimate in compatibility, reliability, and performance. 

IBM is a trademark of International Business Machine, Inc. Compaq is a trademark of Compaq Computer Corp. 
Wall Street Journal is a registered trademark of Dow Jones, Inc. 

50 BYTE • OCTOBER !986 

best choice 
EGA monitors. 

For the no-compromise enhanced graphics monitors, look for the Princeton Graphic 
Systems name. Princeton delivers everything you need in a quality EGA display, from 
crisp, clear, full EGA support to rugged reliability. When you choose Princeton you 
choose the best. 

HX-9L The first IBM compatible 9" high reso- 
lution color monitor to support EGA. Has a 
.28mm dot pitch black matrix tube and etched 
nonglare screen for sharp, crisp displays and 
features a built-in tilt/swivel stand and 
green/amber switch. 

HX-12L The first IBM compatible high 
resolution color monitor to support EGA with a 
.28mm dot pitch. The HX-12E builds on the 
award winning features of the HX-12 and 
features 640 x 350 resolution for sharp, crisp 
text and colorful graphics. 




601 Ewing Street, Bldg. A Princeton, NJ 08540, Telex: 821402 PGSPRIN, (609) 683-1660, (800) 221-1490, Ext. 804 

Inquiry 239 

OCTOBER 1986 -BYTE 51 

Conducted by Steve Garcia 


Daisy Wheels 

Dear Steve. 

A letter by Chris Leiss in the November 
1985 BYTE (page 48) attracted my atten- 
tion. He is using a Brother CE-50 type- 
writer to print Arabic; I'm using a Brother 
HR-15 XL printer (which uses the same 
daisy wheels) and a BASIC program to 
print in various European languages 
(generally, European versions of American 
word processors do not permit you to mix 
several languages in the same text). 

I would like to know who sells Russian 
and/or Greek daisy wheels that fit the 
Brother printers. 

J. Dings 
Pisa, Italy 

You 're in luck! I found a distributor that 
can obtain Russian and Greek print 
wheels for your printer. 

Mr. Peter Neidenbach 
Printer Land Inc. 
210 West Roosevelt Rd. 
Villa Park, IL 60181 
(314) 833-5074 

Mr. Neidenbach stated that he could 
obtain other foreign-language print 
wheels as well—Steve 

C Compilers 

Dear Steve, 

At present, I am doing some initial work 
using a BASIC compiler. I am not satisfied, 
however, because the resulting programs 
are far slower than I expected (besides, the 
version I have does not support the 
80287). I would like to use a C compiler 
instead and 1 need one that meets the fol- 
lowing requirements: 

• Optimized for the 80286/80287 instruc- 
tion set 

• Supports virtual memory 

• Graphics support for the IBM Profes- 
sional Graphics Adapter (PGA) 

• Can address more than the 640K-byte 
memory limit imposed by PC-DOS 

• Has a friendly and effective editor and 

Also, I recently acquired an OEM board 
of an IBM PC AT-compatible computer. 

This machine is equipped with an 8-MHz 
80286 and 80287. I intend to use this 
machine for real-time 3D graphics anima- 
tion. Could you help me find references 
for further study? I am also very interested 
in fractal geometry. 
Do you have any suggestions? 

Anthony Cayetano 
Paranaque, Philippines 

The January 1986 issue of PC Tech Jour- 
nal reviewed a crop of C compilers. 
Rather than pick one out of the list for 
you, I'd suggest that you go through the 
article and match them against your re- 
quirements. However, some caveats are 
in order. 

None of the compilers will generate 
code for the 80286 in protected mode 
because DOS doesn't support this. 
Therefore, all of your programs will treat 
the 80286 as just a faster 8086. Similarly, 
the 80287 will be run as a faster 8087. 

The 640K-byte limit imposed by DOS 
is, unfortunately, rooted in hardware: 
That's all the space that's left after you 
account for all the display adapters and 
whatnot that share the address space 
with the system RAM. The 80286 can ad- 
dress up to 16 megabytes in protected 
mode, but you can't get there from here. 
The new Lotus/ Intel /Microsoft Expanded 
Memory Specification boards allow you 
to stuff up to 8 megabytes in a PC, but 
it's bank-switched using four 16K-byte 
windows inside the 640K-byte limit and 
isn't handy for your project. 

Similarly, virtual memory is handled by 
the operating system rather than the lan- 
guage. PC-DOS, as you might have 
guessed by now, doesn't support virtual 

Support for the PGA isn't part of the 
compiler but is provided as either a set 
of library functions or a device driver. 
Given the complexity of the PGA, the 
support code is only now starting to ap- 
pear, and 1 don't have any recommenda- 
tions on any packages. 

The basic reference for fractals is The 
Fractal Geometry of Nature by Benoit B. 
Mandelbrot (W. H. Freeman, 1982). It's 
not particularly helpful with program- 
ming, but it gives you a good understand- 
ing of just what fractals are. The Com- 

puter Recreations column of Scientific 
American has had several fractal and 3D 
programs lately— Steve 

New Life for 

Lil' Orphan Adam? 

Dear Steve, 

I am planning to buy a Coleco Adam. 
It's cheap, comes with a word processor 
in ROM and a printer, and has a keyboard 
that feels comfortable to me. However, I 
like to program in C, and since the 
machine does not come with CP/M or a 
disk drive, I must find a way to port a C 
compiler over to the Adam. 

1 have decided that the easiest way to 
do this is to write a macro assembler in 
Coleco's SmartBasic, use the assembler to 
write a TIL (threaded interpreted lan- 
guage)-based operating system, and then 
write a C compiler in TIL code. The com- 
piler that I have settled on is the Small-C 
compiler. 1 have the source code for this 
compiler in The Small C Handbook by Hen- 
drix (Reston, 1984). Unfortunately, the 
compiler uses a standard function library 
as well as an "stdio.h" file, and the source 
code for either file is not listed in the 
book. Where can I get an example of the 
source code for a Z80-based system? 

Also, I was recently reading a copy of 
Computer Shopper magazine, in which I ran 
across an advertisement for a subscription 
to a magazine called Computersmyth. I cut 
out the return slip and purchased a money 
order for a two-year subscription, but 


IN ASK BYTE, Steve Garcia answers questions on 
any area of microcomputing. The most representative 
questions received each month will be answered and 
published. Do you have a nagging problem? Send 
your inquiry to 


do Steve Garcia 

P.O. Box 582 

Glastonbury. CT 06033 
Due to the high volume of inquiries, personal replies 
cannot be given. All letters and photographs become 
the property of Steve Garcia and cannot be returned. 
Be sure to include "Ask BYTE" in the address. 

The Ask BYTE staff includes manager Harv 
Winer and researchers Eric Albert. Bill Curlew. Ken 
Davidson, kannette Dojan. )on Elson. Roger \ames. 
Frank Kuechmann. Dave Umdberg. Edward Hisley, 
Dick Sawyer. Andy Siska. and Robert Stek. 

52 B YTE • OCTOBER 1986 



News about the Microsoft Language Family 

Compiling With The cl Interface in Microsoft® C Compiler 

The cl interface is an alternative driver to msc that comes with the Microsoft C Compiler. It is very similar to 
the XENIX® and UNIX™ cc driver, cl will not only compile your program, but will also compile and link multiple 
source files, object files and libraries, all in one step, cl looks at the file name extension (.c or .obj) and determines 
whether it is necessary to compile and link or just to link. 


cl - Ox - FPa - F 2000- Zi main.cmblobj - link myliblib 

This example compiles main.c, creating main,obj, then links main. obj file with subl.obj, 
the alternative math library (/FPa) and mylib.lib. /Ox sets maximum optimization, with stack 
checking off The executable stack size is set to 8K (decimal) with /F 2000(hex). Full symbolic 
information for use with Microsoft CodeView™ is enabled. 

As with msc, cl will automatically use the PATH, INCLUDE, TMP and LIB environment variables. This allows you 
to set up specific search paths for your executable compiler files, include files, temporary files and library files. 

All of the options available with msc are also available with cL The default options for the Microsoft C Compiler 
Version 4.0 interfaces are as follows: 

—As Small Model. 

— FPi Generous floating point calls; selects emulator math library. 

— Ot Controls optimizations; favors execution time. 

— Ze Enables language extensions, such a cdecl } far, fortran, huge, near, pascal. 

The default for the —Ox option has been changed to favor execution time. 

In addition, cl will automatically invoke the linker and use the default C libraries. The following are some of the 
options that are available from cl: 

—link ' t libraryfield M The linker is invoked; linker options and alternate library names may be given. 
Suppress linking. 

— Fm 

Names the executable file. 
Creates a map file. 

Third-Party Libraries Available For Microsoft FORTRAN Compiler 

Microsoft FORTRAN for MS-DOS® provides a number of utilities and math libraries in the product itself, but 
there are a number of additional subroutine libraries that can be obtained through third-party software vendors 
that could speed your development even more. There are a whole range of graphic libraries such as plotting 
libraries (ATC, Microcompatibles, GSS), 3-D graphics (Microcompatibles), ANSI/ISO graphics (GSS, ATG), image 
processing (Werner Frei) and general graphics (Media Cybernetics). If you need data management, Sdftcraft 
provides Btrieve for ISAM support and Microrim provides a Microsoft FORTRAN program interface to their 
RBase product. Although Microsoft FORTRAN math support is already extensive, there are other more specialized 
math libraries available such as modelling (Mitchell &l Gauthier), FFT (MicroWay, Wiley), vector, matrix numerical 
analysis, signal and image processing libraries (Wiley, Quantitative Technology Corporation, Systolic Systems), statistic 
(Wiley, IMSL, MAGUS, IMSL), and broad engineering/scientific math libraries (Wiley, NAG). General purpose 
libraries are available through MEF that provide communications, file management, graphics, DOS, screen 
handling and string handling support all in one package. Even very specialized libraries such as IEEE 488 Support 
(Tecmar) are available. 

Contact these third party vendors for more information on their libraries for Microsoft FORTRAN or receive 
a copy of the Language Support Directory by contacting Microsoft. 

For more information on the products and features 
discussed in the Newsletter, 
write to: Microsoft Languages Newsletter 
16011 NE 36th Way Box 97017, Redmond, WA 98073-9717 
Or phone: 

(800) 426-9400. In Washington State and Alaska, 
call (206) 882-8088. In Canada, call (416) 673-7638. 

Microsoft. MS-DOS and XENIX are registered trademarks and CodeView is a trademark of Microsoft Corporation. 
UNIX is a trademark of AT&.T BcU Laboratories. 

Look for the Microsoft Languages Newsletter every month in this publication. 

Latest DOS Versions: 

Microsoft C Compiler 


Microsoft COBOL 


Microsoft FORTRAN 


Microsoft Macro Assembler 


Microsoft Pascal 


Microsoft QuickBASIC 



before I could mail it out I lost the slip 
of paper with the address on it. Can you 

Derek A. Benner 
Missoula, MT 

Woof! You Ve certainly got a project in 
front of you! 

The original source for Small-C was Dr. 
Dobb's Journal in 1980. Version 2 of the 
language was presented in that magazine 
in December 1982 and January 1983. 
with source for a small library. An ex- 
panded library was printed in May and 
June of 1 984, and a variety of additions, 
corrections, and modifications have 
come out since then. Most of the library 
functions are in C rather than assembler, 
so you may well be in luck. Also, you may 
want to look at Dr. Dobb's Toolbook of 
C. a recently published book available 
from M & T Publishing Inc. ((415) 366- 
3600, ext. 216). 

In all seriousness, I think that your proj- 
ect is too big for an Adam. Given the 
amount of software you're planning to 
write and the amount of debugging re- 
quired to get it all running, you're going 
to spend an unreasonable amount of 

time watching those little tape drives 
whir. You can get a single-board CP/M 
system for about the same money, so an 
orphan Adam doesn't make sense. 

Computersmyth caters to hardware 
tinkerers of all flavors and has had a 
variety of interesting articles in the first 
four issues. The address is 

P.O. Box 1 76 
Peterborough, NH 03458 


Computerizing Model 

Dear Steve, 

One of my hobbies is model railroading. 
For many years 1 have wondered about the 
practicality of using a computer to com- 
pletely control a model railroad (including 
switching operations), which I could scale 
up to a railroad of arbitrary size. I think 
that I have solved all the engineering prob- 
lems except one, and perhaps you can 
help me with it. 

The problem is train sensing. Most train 
sensors I know of merely detect whether 
railroad cars are in track blocks. 1 need 

more precision. I recently had an idea to 
use strain gauge sensors in the track, 
possibly across rail gaps, to sense when 
train wheels pass points on the railroad. 

Using wheel counting and a real-time 
clock (and software that I believe I can 
write). I could get very precise measure- 
ments of train position and speed. 1 could 
even sense derailments and broken trains. 

I know very little about strain gauges. 
How sensitive are they? 1 need to sense 
the presence of % ounce (3-ounce model 
railroad car divided by 8 wheels). Thanks 
for any information you can give me. 

David W. Roscoe 
Chelmsford, MA 

Strain gauges are very tricky com- 
ponents, and you can make them as sen- 
sitive as you need. They are used in 
microgram analytical balances, which are 
more sensitive than any beam balance. 
They provide millivolt signals, however, 
and require complicated amplifiers and 
very effective noise shielding to work 

I would recommend that you try an- 
other approach to train sensing. An op- 


The Complete 68000/10/20 C Compile 

$595 under DOS || $1390 under XENIX ||$2790 under UNIX 

Superior compiler diagnostics help you minimize recompila- 
tion and locate errors precisely. It's fully documented 
and backed by professional support services. 


Includes a full 68020 macro assembler, type-checking 
linker, and all the utilities you need to put your program 
in ROM. 

UNIX is a trademark of AT&T. 
XENIX is a trademark of Microsoft. 

Software Development Systems, Inc. 

3110 Woodcreek Drive, Downers Grove, IL 60515 
Call today (312) 971-8170 

In England call UnitC, Ltd., (0903)205233 

Prices subject to change without notice. 
Call for host machine availability. 

Mainframe Powered CROSS ASSEMBLERS 

dj O Q C Complete 
S>^i#*)under MS-DOS* 

1 $695 

The UniWare™ family of cross assem- 
blers. Fully relocatable, of course, but 
absolute listings are no problem even 
in loads with many source files. With a 
linker so capable that even multiple 
overlays are a breeze. Lots of macro 
power. And all tools have unlimited 
symbol capacity. 

UNIX is a trademark of AT&T. 

XENIX and MS-OOS are trademarks of Microsoft. 

under XENIX** 



under UNIX* 

Intel 8086, 80186, 80286, 

8051 , 8048, 8080/5, 8041 

Motorola 68000, 68010, 68020, 68HC11 , 
6809, 6805, 6801,6800 

Hitachi HD64180, 6305, 6301 

Zilog Z80, Z8 

Others 6502, 1802, TMS7000, 3870/F8 

Software Development Systems, Inc. 

3110 Woodcreek Dr., Downers Grove, IL 60515 

Call today (312) 971-8170 

Visa & Master Charge Accepted (U.S.A.) 
England: Unit-C, Ltd., (0903) 205233 

•Minimum 512K memory recommended. 
"Call for host machine availability. 
The above prices Include one assembler. Discounts avail- 
able on purchases of multiple assemblers; prices subject to 
change without notice. 

54 BYTE • OCTOBER 1986 

Inquiry 336 for C Compiler. Inquiry 337 for CROSS ASSEMBLERS. 

We have 100's of Software 
and hardware items in stock. 
Shipments on almost all 
items within 24 hours! 

Call for programs 
not listed 




Technical & Other 
Info. (602) 246-2222 

TOLL-FREE ORDER LINE 1-800-421-3135 


With every purchase over $1 00.00 you can select one of the following MS/DOS diskettes at n o charge. Please indicate choice(s). 1 . Blueberry I - 54 
basic utility programs includes printer select, graphic generation, etc. Retail value $10. 2. Blueberry 1 1 - includes a banner generator, a label maker and 
a checker game (requires graphics card). Retail value$10. 3. Print Select program - Assembly language program to select different type fonts, etc., or 
make your printer function as a correctable typewriter - perfect for envelopes, notes, etc. Adaptation modules for popular printers included and 
capability to adaptto any printer. Retail value $40. 4. Deposit Program Compiled DBase to list and total cash, check, bank card for bank deposit and 
keeps history - Developed for our corporate use - Super Program! (source code available). Retail value $40. Select an additional diskette for every 
additional purchase of $150 or purchase over $500 and receive all four at no charge. 


Clipper $334 

Clout 2 117 

Condor III 310 

Knowledgeman II 2&0 

Nutshell Filer 59 

Powerbase 2.2 212 

PFS: File 76 

Q&A Call 

Quickcode 138 

Quickreport ". 138 

Revelation 445 

R: Base System V 332 


Easy 88 

Leading Edge w/Merge/Spell . . 75 

Microsoft Word 252 

Multimate Advantage Call 

Peachtext5000 145 

PFS: Write 76 

Volkswriter 3 139 

Webster Spellcheck 37 

Wordstar 162 

Wordstar Propac 233 

Wordstar 2000 233 

Wordstar 2000+ 278 


Microsoft Multiplan 108 

PFS: Plan 78 

Spreadsheet Auditor 3,0 82 

Supercalc 4 Call 

VP Planner 49 


BPI AP, AR, PR, GA 299 ea. 

Cyma Call 

Dae Easy Accounting 39 

Managing Your Money 94 


Ability 59 

Enable 312 

Smart Software Call 


Crosstalk 89 

Microsoft Access Call 

Remote 89 

Smartcom II 83 


Chartmaster 205 

Energraphics 2.0 269 

In-A-Vision 249 

Microsoft Bus Mouse 106 

Microsoft Chart 164 

Microsoft Serial Mouse 119 

Newsroom 33 

PC Mouse W/DR Halo II 106 

Printshop 33 

Signmaster 132 


Harvard Total Project 262 

Microsoft Project $219 

Super Project Plus 239 

Timeline 2.0 209 


Flight Simulator 28 

Turbo Tutor 20 

Typing Tutor III Call 


Lattice C Compiler 242 

Microsoft C Compiler 249 

Microsoft Fortran 195 

Microsoft Macro Assembler ... 84 
Microsoft Pascal Compiler . . . 166 

Microsoft Quick Basic 55 

Ryan McFarlan Fortran 305 

Ryan McFarlan Cobol 479 

Turbo Pascal w/8087 + BCD ... 55 


CarbonCopy 115 

Copy UPC 19 

Copy write 39 

Desqview 55 

Double Dos 27 

Fastback 85 

Microsoft Windows 55 

Norton Commander 37 

Norton Utilities 3.1 49 

PC Tools 19 

Prokey 4.0 70 

Sidekick 31 

Sidekick (unprotected) .'■. 47 

Sideway 3.1 36 

Superkey 39 

Traveling Sidekick 39 

XTree 27 


Copy II PC Board 75 

IBM 135 watt power supply 59 

Mini Micro Parallel 

Print Buffer 69 

Masterpiece 88 

Masterpiece Plus .... — 113 


Nationally advertised boards for 
IBM PC and most compatibles 
at giveaway prices. 
Keyboards (similar 

to 5151 $79 

Monochrome Board w/printer 

port (similar to Hercules 

Graphics) $79 

Expansion Board 

0to576K $42 

Multifunction Board w/game 

port (similar to AST 

six pack) $79 

Four Drive Floppy 

Controller $39 

Color Card w/o printer 

port $69 

Color card w/printer 

port $79 


Keytronics 5151 $155 

Keytronics 5153 265 




MSP-10 285 

MSP-15 385 

MSP-20 325 

Premiere 35 Daisy wheel 469 

EPSON - Call on all models 

NECP5XLP 1126 

NEC P7 Parallel 635 

NEC 8850 1098 

NEC P6 Parallel 455 

Elf 360 398 

OKIDATA - Call on all models 

1091 235 

1092 299 

1592 425 

KXP3151 399 


LV1210 179 

NB15 975 

NX10 232 

SG15 365 

SR15 585 


P351 969 

P341 768 

P321 Call 


AMDEK310A 142 

AMDEK 600 395 

Magnovox Color RGB Call 

Multitech Color RGB 259 

Princeton Max 12 159 

Samsung TTL Amber 72 

Samsung TTL Green 70 


AMDEK 722 505 

NEC Multisync Call 


Everex Enhancer EGA 235 

Paradise Auto Switch 

EGA Card 359 

Quad EGA Plus 365 

STB EGA Plus Call 

Vega Video 375 


64K150NS(setof9) 11.50 

256K150NS(setof9) 30 

256K 200NS (set of 9) 39 

8087-2 Call 


AST Advantage $329 

AST Premium 359 

AST Sixpac (384K) Call 

Hercules Color Card 145 

Hercules Graphics + 182 

Intel Above Boards Call 

J Lazer (Tall Tree) Call 

J Ram III (Tall Tree) 179 

J Ram III AT (Tall Tree) Call 

STB Chauffeur 185 

STB Mono 155 



IBM Compatible Computer, 
4.77 or 7.47 key selectable, 
AT style keyboard, 640K, 
dual drive, 135 watt power 

supply $599 

or with 20 MB Seagate 

Harddrive $970 

6 month limited warranty 

Corona PC Call 

Multitech 900 Accel 

IBM AT Compatible, 512K, 
expandable to 1 MB on the 
mother board, one 1 .2 MB drive, 
195 watt powersupply, MS/DOS 
3.1, clock, 6 or 10 MHZ key 
selectable, soft white monitor, 
AT style keyboard, 1 year 
TRW warranty Call 

Multitech Turbo 

IBM Compatible Computer, 
256K, dual drives, 8 MHZ, ports- 
parallel-serial-clock, 5151 type 
keyboard, graphics board (sim 
ilarto Hercules), mono monitor 
DOS 3.1, 6 month national 
warranty Call 

Sharp Portable Call 

TERMS: Add 3% for C.O.D. orders. 
Shipping on most software is $5.00. 
AZ orders +6.7% sales tax. Personal 
check - allow fourteen (14) days to 
clear. We accept purchase orders 
from authorized institutions. All 
returns are subject to our approval. 
There will be a20%restockfee. Min- 
imum phone order $50. 

No Charge for Master Card or Visa 

TOLL-FREE ORDER LINE 1-800-421-3135 

2701 West Glendale Ave. • Phoenix, AZ 85051 

Hours 7 A.M. to 5:30 P.M. M.S.T. - Mon. thru Fri. 
Saturday 10:00 A.M. to 3:00 P.M. 

Inquiry 318 

OCTOBER 1986 • BYTE 55 










Everyone seems to be jumping on the bandwagon. 
Today, companies that weren't there yesterday, and 
may not be there tomorrow, are building computers from 
easily assembled components. 

The result is a sea of computer clones with little to 
distinguish one from another. 

BUSINESS AUY. Our approach to offering you a computer 
was entirely different. We looked at what would work best 
for you and your business. 

The result is the Panasonic Business Partner 
and Panasonic Business Partner 286. Two powerful 
business allies, designed to answer your most demand- 
ing computer requirements. 

PANASONIC MAKES. With our long, 
unparalleled heritage in video tech- 
nology, you get high-quality, high 
resolution monitors. An optional 
Panasonic CGA PLUS board is 
switchable to let you use a color or 
monochrome display for both graphics and text. 

BUILT-IN FLEXIBILITY. No two businesses run exact- 
ly the same way. So you can configure the Business 
Partners to your own individual needs. In addition to 

their built-in floppy 

disk drives, you 
can add a hard 
disk drive, addi- 
tional half-height 
drives— even a 
magnetic tape drive. 
SPEED AND PERFORMANCE. The Business Partner 
286 is built with maximum power and speed. Its 80286 
processor runs at 6 MHz or 8 MHz, with the ability of 
addressing up to 15Mb RAM. 

JThe Business Partner, with its 8086-2 
processor, runs at 4.77 MHz, 
and for projects that need added 
acceleration, it will run up to 
716 MHz. 

FUTURE GROWTH. Both Business Partners have 
been designed to grow as your business grows. Extra 
slots are built in to offer 

you the flexibility- BB^IM ll lltl lt l W 

now and in the future— ^_ 

to add on cards for j _ ^ 

high resolution graphics, ^™"™ mKim *— mmmm - .,,,.. _,, . 
communications accessories and other peripherals. 

*IBM is a registered trademark of the International Business Machines Corp. 

POWER TO SPARE. As your business grows, you'll 
put greater demands on your 
Business Partner. Don't worry, 
it can handle it. With 130 watts 
on the Business Partner and 
220 watts on the Business 
Partner 286, you'll be able to 
drive additional peripherals 
and expansion boards. 

detachable keyboards on both models have been designed 
for comfort and ease 
of use. We've separa- 
ted the cursor keys 
and numeric keys 
for quick, convenient 

access. Swivel monitors adjust for each operator. On the 
Business Partner 286, you can lock the cabinet with a key 
to help prevent tampering and prying. 

Business Partner compatible with the IBM* 
PC/XT And the Business Partner 286, 
with the PC/AT So you'll be able to run the 
most popular software. You'll also get compat- 
ibility with Panasonic's wide range of quality 
peripherals, for the complete Panasonic office. 
And more importantly, both Business Partners are 
from Panasonic, the company firmly committed to building 
a high-quality and dependable reputation in computer pro- 
ducts. So both are backed with a full-year limited warranty. 



For more information, and the location of the dealer 
nearest you, call 1-800-PIC-8086. Or write: Panasonic 
Industrial Company, Computer Products Division, Two 
Panasonic Way, Secaucus, NJ 07094. And discover how 
the right Business Partner can make r unni ng your business 
easier You'll see THE EASIER, THE BETTER. 


Inquiry 224 


tical sensor placed under the track would 
work very well. If you want to sense 
wheels, you could put sensors on op- 
posite sides of the track, just peeking 
over the top of the rails. You could put 
these in housings that would look very 
much like standard railway equipment, so 
as not to be unrealistic. A sensor under 
the track could sense available room 
light, while the wheel sensors could use 
paired infrared emitters and detectors. 
A third approach would be to use the 

reflective sensing emitter-detector sets 
and put a bit of aluminized plastic tape 
on the bottom of each car that could be 
sensed from below the track. To get really 
fancy put a bar code on each car and 
have the computer keep track of indi- 
vidual cars and locomotives. 

If the sensors are infrared photo- 
transistors, the interface to TTL levels can 
be a transistor or a comparator: The com- 
parator gives more sensitivity and a way 
to set each sensor for the optimum 

USRobotics' COURIER 2400™ 
.. .The most dependable 
at2400- or1200-bps 

You get 2400/1200/300-bps 
data communications and 
every first-class feature you'd 
expect in an auto-dial, auto- 
answer modem... at a surprisingly 
affordable price. 

But a modem at any price is only 
as good as its performance... And 
that's where Courier 2400 really shines. 
Don't take our word for it. Ask any of 
the nearly 2,000 electronic bulletin 
board system operators who have 
chosen the Courier 2400 for one of 
the most demanding modem applica- 
tions imaginable. 

Listen to the unanimous chorus of 
praise for the Courier 2400 from tough 
reviewers at more than a dozen highly 
respected computer magazines. 

Consider Courier 2400's perform- 
ance record— less than one percent 
of all Courier 2400s sold have been 
returned for service, a record we chal- 
lenge the industry to match. And we 
back up our confidence in Courier 2400 

58 B YTE • OCTOBER 1986 

with a full two-year parts and service 

Quality, performance, value— your 
modem should be this good. It is, if 
it's the Courier 2400 from USRobotics. 


The Intelligent Choice in Data Communications 

8100 McCormick Blvd., Skokie. Illinois 60076 
Phone toll free 1 (800) DIAL USR 
In Illinois (312) 982-5001 

7b learn more, send for our 
FREE booklet: "24 Questions 
and Answers on 2400-BPS 











Inquiry 3I3 for End-Users. 
Inquiry 314 for DEALERS ONLY 

threshold to compensate for mechanical, 
optical, and component variations (which 
are rather large in LEDs and photode- 
tectors). —Steve 


Dear Steve. 

I have a Zorba CP/M computer that has. 
among numerous other features, an 
IEEE-488 port installed. I am interested in 
using this port to drive peripherals such 
as speech synthesizers, voice recognition 
units, and nonwire communication links 
(light beam, radio, etc.) to robots and other 
computers. There seems to be a dearth 
of information on this port in the popular 

Have you had any experience using the 
IEEE-488 port? Can you refer me to any 
sources of information on it? From what 
I have seen, it has been wrongfully 

Billy R. Rogue 
Lake Havasu City AZ 

The IEEE-488 bus is an 8-bit parallel 
bus that was originally designed to con- 
nect test and measurement instruments 
to early programmable calculators to 
form production test systems in factories. 
The document, IEEE Standard 488-1978, 
Digital Interface for Programmable In- 
strumentation, can be obtained from the 
IEEE. Another source is the Intel Com- 
ponent Data Catalog. The section on the 
8291, 8292, and 8293 circuits has much 
information on this bus and describes in- 
terface circuits as well. Intel calls the 
IEEE-488 the GPIB (general-purpose in- 
terface bus) and Hewlett-Packard origi- 
nally called it the HP-IB. Intel in Phoenix 
((602) 997-9695) or BFA in Scottsdale 
((602) 924-5400) should be able to get 
you the Intel catalog.— Steve 


LED Graphics Display Panel 

Dear Steve. 

I am interested in building a light panel 
with incandescent or LED lamps (colored, 
if possible) that I can use as an advertise- 
ment board. I would like to construct a 
panel ranging in size from 3 feet by 4 
feet to possibly 12 feet by 12 feet, capable 
of displaying text, graphics, or anima- 

1 presently have an Apple He, an 80- 
column card, Duodisk, Imagewriter. and 
a green monochrome monitor. I have seen 



That's Too Darned High! 

Why should a CAD package cost more than a Word 
Processor? It shouldn't! Lots of people ask how we can 
offer a CAD system as good as Pro Design II at a price as 
low as $299. It's easy. A PC Software Package does not 
cost $2000 to manufacture. It doesn't even cost $200. It 
makes us ask the questions, "Why do comparable CAD 
packages cost $2000 and more?" "What makes a CAD 
package cost more than a Word Processor?" 

ProDesign II doesn't. ProDesign II is the complete 
CAD package you get for $299. With ProDesign II, you 
get such advanced features as Auto Dimensioning, Area 
Fill, Fillets, Mirroring, Isometrics, Curve Fitting, Object 
Snap, Attributes, Drawing Merge, and many, many more. 
Features once available only for $2000 or more. Features 
you get at no extra charge with ProDesign II. 

But there is another, very important reason you 
should get ProDesign II. ProDesign II is very unique 
among CAD packages. It is easy to learn and use. When 
we call ProDesign II "The Easy To Use CAD System", 
we're not joking. You will be productive with ProDesign II 
in an hour or two instead of a week or two. 

What else does ProDesign II offer? Compatibility. 
Compatibility with over 100 printers. Compatibility with 

over 50 plotters. Compatibility with most graphics adapt- 
ers, digitizing tablets, and mice. Compatibility with most 
display adapters. Compatibility with any software that can 
produce HP plotter commands. Compatibility with main- 
frame CAD systems (IGES). All at no extra charge! (You 
can also get an AutoCAD Interchange Utility for $99 that 
converts drawings to or from the AutoCAD format.) 

What additional hardware do you need? None! An 
IBM PC compatible and 512K RAM are all you need. 
ProDesign II produces high resolution drawings on your 
dot matrix printer - better than .005" resolution on an 
IBM/Epson compatible printer. Andyoudon'thavetoget 
a mouse or digitizing tablet. ProDesign II is designed for 
easy and efficient keyboard use. You won't even need a 
math coprocessor, although it is supported. From a small 
drawing on a dot matrix printer to an E-Size drawing on a 
large plotter, ProDesign II is the one to use! 

ProDesign II — Affordable, Compatible, and Usable! 

Where do you get it? See your local dealer or contact: 

American Small Business Computers, 

118 South Mill Street 

Pryor, OK 74361 




Inquiry 24 

OCTOBER 1 986 • BYTE 59 

Inquiry 6 

How to tackle 
a 300 page monster. 

Turn your PC into a typesetter. 

If you're writing a long, serious document on your IBM PC, you 
want it to look professional. You want MicroTj?X. Designed espe- 
cially for desktop publishers who require heavy duty typesetting, 
MicroTgX is based on the Tj?X standard, with tens of thousands 
of users worldwide. It easily handles documents 
smaller than 30 pages to 5000 pages or more. 
No other PC typesetting software gives you as 
many advanced capabilities as MicroTgX. 
So if you want typesetting software 
that's as serious as you are about your 
writing, getMicroTEX. Call toll free 
800-255-2550 to order or for more . 
information.* Order with a 60-day 
money back guarantee. 

MicroT E X 

from Addison-Wesley 

Serious typesetting for serious desktop publishers. 

•Dealers, call our Dealer Hot Line: 800-447-2226 
(In MA, 800-446-3399), ext. 2643. 

Copying diskettes will never be easier 
than pushing one button. 

While your computer is 
busy doing other things, 
your Victory Duplicator can 
be making as many as eight 
copies of a diskette at once 
— producing up to 400 copies 
in an hour. DualMaster™ 
models can even make 
multiple copies of two different 
diskettes simultaneously. 
Just insert the diskettes 
and press one button. 

Copy different formats, 

An automatic format analysis 
program makes it possible 
for the Victory Duplicator to 

copy virtually any 5 l /i, 3V2 
or 8-inch diskette. The system 
tests for quality and accuracy 
at every stage of the process. 

It practically services 

Each drive has a separate 
controller to maximize up- 
time. Simple diagnostics to 
verify drive alignment and 
industry standard drives 
allow you to maintain your 
system without waiting for 
outside service. 

All at an attractive price. 

Victory Duplicators offer 
fast copying, serialization, 

Come see us at Fall COMDEX. 

copy protection, a commu- 
nications port, a four-month 
warranty and much more — 
all for one low price. 

Call 1-800-421-0103. 

Call today for more 
information. (In Texas, 
call 512-450-0801.) 



Technology, Inc. 

8910 Research Blvd., Suite B2 
Austin, Texas 78758 


software from Broderbund called Fanta- 
vision that does color animation on the 
He and is reportedly able to do up to a 
three-hour show. 

I know a little about electricity and 
would like to build a small panel to experi- 
ment with. Can you give me any informa- 
tion on this? 

Kent Barnard 
Wayne City, IL 

Volume II of Ciarcia's Circuit Cellar 
(BYTE Books, McGraw-Hill) contains 
details on a self-refreshing LED graphics 
display panel. The circuits shown in that 
article could be readily adapted to the 
Apple lie (you could drive them using a 
parallel port). This would allow you to ex- 
periment with the fundamentals. 

The April 1984 Circuit Cellar column 
featured a scrolling LED display driven 
by the Z8 control computer. This display 
could also be driven by a suitably 
equipped Apple.— Steve 

testing and recalibrating 
Floppy Disk Drives 

Dear Steve, 

1 am in charge of the PC Laboratory at 
the Weizmann Institute. We have over 100 
IBM and IBM-compatible PCs and two of 
us to give advice on purchasing hardware 
and software, hooking it all up, arranging 
for maintenance, etc. 1 wonder if you could 
help us with one of our biggest mainte- 
nance headaches— floppy disk drives. 

As a research institution, we are exempt 
from custom duties on most laboratory 
equipment that we buy. Therefore, we 
often buy mail-order equipment from the 
United States (often from advertisements 
in the back of BYTE), since it can be 
cheaper than ordering from a dealer here. 
This has had mixed results in terms of the 
quality of the hardware we purchase. For 
instance, we have ordered drives that, 
when we receive them, don't work until we 
play around with the little jumpers on the 
drive circuit board (e.g.. DS0, DSI. MS, HS, 
etc.). Of course, the drives never come 
with documentation, so I am working in 
the dark. I have been forced to pay an out- 
side laboratory to adjust some drives that 
I couldn't get to work. 

1 also find that heavily used floppy disk 
drives go out of calibration. There is a 
laboratory here that repairs drives, but it 
seems a shame to pay them $75 to cali- 
brate a drive that costs $100 new. While 
we do not intend to become a facility for 
repairing drives, 1 would like to be able to 
recalibrate them here. 

Could you recommend a book on flop- 
py disk drive maintenance? Also, perhaps 


60 B YTE • OCTOBER 1986 

Inquiry 317 

With all these SoftLogic Solutions, 
you could run out of problems* 

Now there's a whole family of low-cost, easy to use Softlogic software for the IBM PC, XT, AT, and compatibles. 
They'll save you time, aggravation, and lots of money. Got a problem? Check out these Softlogic Solutions. 

Software Carousel— The easy way 
to move from one program to another. 

What a hassle. Saving, exiting, loading, retriev- 
ing—just to move from one application to 
another. With Software Carousel, you can keep 
up to ten programs loaded and ready to run. 
Best of all, you can use all your memory in each 
and every one. Supports AboveBoard™ and 
RAMpage?' too. 

Disk Optimizer— Speeds up your 
disk by cleaning up your files. 

You may not notice, but your hard drive is get- 
ting slower. Because your files keep getting frag- 
mented and scattered on your disk. Reading, 
writing, everything takes longer, because your 
disk is working harder. Disk Optimizer puts back 
the speed by putting your files back in one 
piece— where they belong. 




Cubit— Packs more of your data 
onto less disk space. 

Filling up your hard disk again? Don't run out 
and get a bigger drive. Get Cubit, and get up to 
twice the storage capacity from the drive you 
already have. Cubit compresses and decom- 
presses word processor, spreadsheet, database, 
all kinds of files — quickly, safely, invisibly. 

DoubleDOS — The multitasking 
software that takes less of everything. 

You can spend more money, load more memory, 
and read more manuals with systems like Top- 
View™ or Windows™ Or you can get Double- 
DOS, the amazingly simple concurrent software 
environment that lets you and your computer 
each work on different tasks at once. Nothing 
could be easier. And nothing costs you less. 

Put your problems behind you. Order these SoftLogic 

Solutions today. 





So why put up with problems? Especially when you 
can get dependable SoftLogic Solutions for just 
$49.95* each. Ask for SoftLogic products at your 
computer dealer. Or order directly from SoftLogic 
Solutions by calling 800-272-9900 (603-627-9900 in 
New Hampshire). 

Order today: 

SoftLogic Solutions, Inc. 
530 Chestnut Street 
Manchester, NH 03101 
800-272-9900 (603-627-9900 in NH) 

*P\us $5.00 shipping &. handling. 



Inquiry 277 

OCTOBER 1986 • BYTE 61 


Now In Our 8th Year" 

In The World of PC Upgrades 






TANDY 1000 




THC-21 $675 

PCHC-21 $675 


TANDY 1000 



PCWD-SO $795 

TWD-SO $795 


TANDY 1000 



PCWD-20 $479 
TWD-20 $479 


MT40 $595 

MT40P $695 


MT60 $795 

MT60E $895 





IS80-S $1995 







MF720P $295 






SCSI-1 $100 

TANDY 1000 






TMF-1 $269 



R/ASSIST $4998 








l v€rr wnrmnNTv, 30 drv moncv back guaranty 

6985 University Boulevard, Winter Park, Florida 32792 305-6778333 

Inquiry 193 


Micro Design InternotionciL Inc. 


you could suggest what sort of equipment 

we would need to keep drives calibrated? 

Samuel Gamoran 

The Weizmann Institute of Science 


The minimum equipment you need to 
test floppy disk drives is a computer to 
run the drive, an alignment disk, and an 
oscilloscope to read the output signals 
produced by the alignment disk. 

PC Tech Journal reviewed five floppy 
disk drive diagnostic disks in the May 
1985 article "Testing 1,23,4,5" by James 
Chumbley. These disks provide data on 
speed, alignment, centering, head back- 
lash, etc. Of the five, only the following 
vendors provided quantitative data: 

Dysan Corporation 
1244 Reamwood Ave. 
Sunnyvale, CA 94089 
(408) 734-1624 

Memory Minder 
I & M Systems Ltd. 
15 100 A Central Ave. SE 
Albuquerque, NM 87123 
(505) 292-4182 


ReadiWare Systems Inc. 
P.O. Box 515 
Portage, Ml 49081 
(6161 327-9172 

Recent issues of Computer Shopper 
magazine carry ads for disk drive service 
manuals from 

Consumertronics Co. 
Attn.: Computers 
2011 Crescent 
Alamogordo, NM 88310 

and a drive tester, the EX2000 Disk Drive 
Exerciser: from 

Proto PC 

2439 Franklin Ave. 
St. Paul, MN 55114 
(612) 644-4660 


Music Project for the IBM PC 

Dear Steve, 

1 am interested in using an IBM PC- type 
computer for music synthesis and audio 
editing. Ideally, such a system would be 
capable of digitizing input data on a single 
channel with 12-bit resolution and 50-kHz 
sampling rate. It should also be capable 
of synthesizing two channels with a 12- to 
16-bit dynamic range at the above sam- 
pling rate. A 40-megabyte hard disk could 
store six minutes of input data and three 







,W oIno.: „ 2T0 
-SteioONo, 5lea 




51 0.237.50 


r ll 

South Seas Shipping Company 

November 20, 1986 

Ms. Cathy Lyons 

Import Officer 

Botanical Research Ltd. 

55 Wewak Road 

Moresby. Papua, New Guinea 


This letter confirms the agreement we reached at our meeting last week in San Francisco. 

Botanical Research, Ltd. will recommend the optimal conditions for shipping palm fruit and palm oil. 

— ct important issues lor consideration are: temper at uro during snipping and length o t time between 
r ~w shipping. 

" ko completed by Juno 1, 1987. 

Sou ' h Seas =a,i„ . 
C °">°™le CW^ Com "any 
gan,«„'o„ a/ Char, 

-—^cwW ZL V* c£ •« be a 





,r »sm 



The world's best-selling desktop laser printer has 
somethingin store for just about every business that's 
ever dealt with the printed word. 

Because the Hewlett-Packard LaserJet Printer is 
the only printer of its kind specifically designed to 
work with over 300 software programs. And since it 
hooks up to almost any business PC, it's right for all 
kinds of users — not just the art department. So you 
can print everything on this desk— from simple 
memos to your life's memoirs. And get high-quality, 
professional-looking output. 

Combined with our very fast, very versatile 
HP Vectra PC (it's IBM PC/AT compatible) and the 
software of your choice, the HP LaserJet is the cor- 
nerstone for a complete desktop publishing solution. 
One your whole company can easily use. 

Of course, the HP LaserJet also 
works with IBM PC's and compatibles. 
As well as software like Lotus 1-2-3, 
WordStar and d:BASE II. And, for 
around $3,000, it's the laser printer 
you can afford. 

V\fe can't print all the reasons our npvectrapc 

HP LaserJet is the printer of choice. But if you stop by 
an authorized HP dealer or call us at 1 800 367-4772, 
Dept. 276D for the one nearest you, we'll show you 
why HP quality printing makes very good business 
sense indeed. 

Print samples pioduaid on u LaserJet Plus wrth the fallowing software packages: Studio Software Spellbinder* Desktop 
Publisher, MicroPro WordSlOf 2000* Lotus I -2-3» and FormMoker HJ" HP Ueclra PC is a Iraaemortt of Hewlett-Packard 
IBM PC is o registered trademark of International Business Machines Corp Lotus I -2- 3 is a registered trademark of 
Lotus Development Corp, WordStar ts a registered trademark of MicroPro International. d:BASt 11 ts a registered trademark 
of AshtonTate,© !986HewicM-PackordCo 



HP LaserJet 


Business Computing Systems 

Inquiry 137 


Introducing the Lattice MS-DOS 
C Compiler, Version 3. 

There's never been a better time to buy Lattice C. 
Professional programmers the world over have made 
Lattice C the standard compiler for serious MS-DOS 
programming. Now Version 3 offers even more of the 
features that have made our previous versions so 
popular. Our new compiler features include: 

ANSI language constructs including, unsigned as a 
modifier, void data type, enum data type, structure 
assignments, structure arguments, structure returns, 
and argument type checking. 

The compiler also contains better aliasing algorithms, 
more efficient code generation, and more flexible 
segmentation, in-line 8087 code generation, and 80186/ 
80286 code generation. 

The library contains more than 200 new functions, 
including: ANSI/UNIX/XENIX compatibility; extended 
support for MS-DOS; extended support for networking 
including file sharing, file locking, and I/O redirection; 
and flexible error handling via user traps and exits. 
Plus the library has also been re-engineered to 
produce much smaller executables. 

Try the new Version 3 C Compiler from Lattice. 
Because C-ing is believing. 


Lattice, Incorporated 

P.O. Box 3072 

Glen Ellyn, IL 60138 

312/858-7950 TWX 910-291-2190 

Benelux: Ines Datacom (32) 2-720-51-61 
Japan: Lifeboat Inc. (03)293-4711 
England: Roundhill (0672)54675 
France: SFL (1)46-66-11-55 
Germany: (49)7841/4500 (49)8946/13290 


minutes of stereo output. Obviously, the 
data transfer rates would be quite high 
(200K bytes per second), requiring spe- 
cialized hardware such as a dual-port 
memory buffer. Are you aware of any 
commercially available option boards for 
the PC that might perform these func- 
tions? If not, do you have any interest in 
developing such a board? 

David ]. States 
San Diego, CA 

I don't have a music project like you re- 
quested in the works at this time for the 
IBM PC There are a few AID boards 
capable of sampling at rates of 50 kHz 
or more; a couple of vendors are 


440 Myles Standish Blvd. 
Taunton, MA 02780 
(617) 880-3300 

Data Translation Inc. 
100 Locke Dr. 
Marlborough, MA 01752 
(617) 481-3700 

If you can reduce the 50-kHz sample 
rate, you might get by with an IBM PC 
with a hard disk. I calculate a data rate 
of 100K bytes per second, assuming the 
12 -bit data is stored as 16 -bit words to 
save time (1 don't have a calculation for 
the compression time). This is a little fast 
for a PC. The Norton Utilities Disk Test 
can read an entire 10- megabyte hard disk 
with an interleave factor of 2 in just about 
2 minutes, or 83K bytes per second. This 
isn't up to the specified data rate of 5 
megabits per second for this drive/con- 
troller, but it is consistent with wait states 
for the PC DMA controller and a little 
processing by the controller, and, thus, 
is probably close to what you can expect 
in real applications. 

A PC AT or one of the faster clones 
might be better. If you want real speed, 
you might consider an array processor 
of the type available from Data Transla- 
tion or Datacube as well as other com- 
panies. These are usually used as high- 
speed graphics processors but are quite 
adaptable.— Steve ■ 

Over the years I have presented many dif- 
ferent projects in BYTE. I know many of you 
have built them and are making use of them 
in many ways. 

I am interested in hearing from any of you 
telling me what you've done with these projects 
or how you may have been influenced by the 
basic ideas. Write me at Circuit Cellar Feed- 
back, P.O. Box 582, Glastonbury, CT 06033, 
and fill me in on your applications. All letters 
and photographs become the property of Steve 
Ciarcia and cannot be returned. 

64 B YTE • OCTOBER 1986 

Inquiry 161 


Computer Mail Order is one of the oldest computer mail order companies 

in the country. We've succeeded where others have failed, because year 

after year, we've delivered to you the most product performance for your 

dollar and given you the attentive service you desire and deserve. 

This month we launch a new look. We hope you'll find it as easy on your eyes 

as Computer Mail Order has been on your pocketbook. 

We also hope you'll do us the honor of calling us C-M-O. 


When you call CMO toll-free, you order from a selection of the finest 

computer hardware, software and peripherals available. More than 5000 

items from the best sources in the business (including PC-TOO? 

the tailor-made clone, direct from CMOS). 


Call us. Compare us. Talk to us. We wont hang up. We like talking price 
as much as we like talking computers. 


We know computers. And we back that product knowledge with 

w__ 1~ _ — ^M. m ■ mm ■■■ ■■■ ■ ■ ■ ■ ■ 

on our entire inventory. At CMO, we're committed to keeping 
you up, running and satisfied. 


We're CMO. No hot air. No come-ons. No hang-ups. And no fine print. 

Turn the page. Explore CMO. 

¥«im MKa/zMi] 



, I i i i i t ' f ' i i J i"" r" j " f* 

'".. t t r i ■' i i i ii v i t 1- 
"? i ist r j" r ' r" t" !;■■!■" t 1 
iff r i i i r i t f t i j v& I 

Presenting PC TOO: Only from CMO. 

When you think of tailor-made, you think expensive, right? Think again. 

NowCMOcan offeryou a20 Mb PC-compatible-one weassemble in our Pennsylvania 
lab just for you. To your specifications. With the attention to quality and performance you've 
come to expect from CMO. All for just $999. 

Every tailor-made clone we make is backed with a full 90-day warranty on labor and 
parts, a 30 day money back guarantee and easy access to CMO technical support after the 
sale— the kind that keeps you up, running and satisfied. 

For $999, you get: A 20 Mb, PC-XT compatible that runs thousands of programs, 
including Lotus 1-2-3™ A 4.77 Mh chip speed An XTchassis with 256K (expandable to 
640K) ■ A 20 Mb hard drive ■ A 360K floppy drive A floppy disk and hard drive controller 
A 150 watt power supply (not just 130) ■ Open architecture with 8 expansion slots (not 
just 7) ■ And an 84-key, XT-style keyboard. 

Need more power and more flexibility? Call us. Let's talk about your tailor-made 

Your options are unlimited. 

CMO. Policies and particulars. 

Next day shipping on all in-stock items. • Free technical support from our own factory-trained staff. •Toll-free order inquiry. 

• No surcharge on VISA or MasterCard orders. • Credit cards will not be charged until the order is shipped. • No limit and no 
deposit on COD orders. • No salestax on orders shipped outside PA. • No waiting period for cashier's checks. 

SHIPPING. Add 3% (minimum $7.00) shipping and handling on all orders. • Larger shipments may require additional charges. 

• Returned items may be subject to a restocking fee. • All items subject to availability and price changes. 


When you want to talk computers. 

When you want to talk price. 

Call toll-free: 1 800 233-8950. 

Outside the U.S.A. 717 327-9575 Telex 5106017898 

CMO. 477 East Third Street, Dept. Alio, Williamsport, PA 17701 

All major credit cards accepted 

CMO. Doing business-to-bi 

Person to person. 

Nottoo long ago, I got a call 
from a new customer with an 
unexpected problem— we had 
delivered his order too quickly. 
He had placed a COD order 
with one of our sales consult- 
ants on the 1 4th. It went through 
our system and was shipped 
the 15th. When the shipment 
arrived, the customer called. 
He said he hadn't expected it 
so soon and hadn't had time 
to arrange for payment. 

It turned out the customer 
had worked as a sales rep for 
a competitor of ours. He said it 
takes them 3 or 4 weeks to 
complete most orders. Con- 
sequently, he didn't think there 
was any hurry to get a check 
ready for the CMO order. 

'They must have a lot of can- 
celled orders," I said. 

He said yes, that in a typical 
month they only ship 40% of 
what's ordered. 

Thatsurprised me. I told him 
we ship 90% of our orders the 
next day. And we have very 
few cancellations. 

Well, everything worked out. 
I apologized for our prompt- 
ness. He laughed and said 
he'd be ready for us the next 
time he ordered. 

And we'll be ready for him. 

CMO is committed to its cus- 
tomers. We operate an IBM 
System 38 with state-of-the-art 
software to help expedite the 
tens of thousands of orders 
we receive. Thanks to this sys- 
tem CMO is able to provide cus- 
tomers with up-to-the-minute 
information about their orders. 



Paradox $499.00 


d-Base III + 429.00 

Framework II 429.00 


Reflex 59.99 

Lightening/Word Wizard 99.99 

Central Point Software 

Copy II PC 24.99 

5th Generation 

Fastback see special 


Mouse w/Dr. Halo 119.00 


General Ledger 299.00 

SuperCalc III 329.00 

Super Project Plus 299.00 


Volkswriter III 149.00 


Lotus 1»2«3 329.00 

Symphony 449.00 


Managing Your Money 119.00 


Wordstar 2000 + 299.00 

Wordstar Professional w/GL Demo 189.00 

R:Base 5000 359.00 

Micro Soft 

Micro Soft Word 289.00 

Micro Soft Mouse/Serial 139.00 

Micro Soft Mouse/Bus 139.00 


Crosstalk XVI 89.99 

M ultimate 

Multimate 3.3 229.00 

Multimate Advantage 289.00 

Norton Software 

Norton Utilities 57.99 


First Choice 99.99 

Professional Write 129.00 

Professional File 159.00 

Satellite Systems 

Word Perfect 4.1 219.00 

The Software Group 

Enable 369.00 




Color 600 RGB, IBM CGA $399.00 

Color 722 RGB, CGA/EGA 499.00 

Color 730 RGB Analog 699.00 


8CM515 RGB Monitor 80 289.00 

7BM623 PC Monitor 80 99.99 


JC-1401P3A Multi-Sync 599.00 

JB-1280 TTL Green 139.00 

JB-1285 TTL Amber 139.00 

Princeton Graphics 

MAX-12 Amber 169.00 

HX-12 16 Color 429.00 

HX12e 64 Color 509.00 

SR-12e Super Hi-Res 589.00 

SR-12e RGB Analog 649.00 


640 RGB Hi-Res 539.00 


Expressi 1200 Half Card $149.00 


Evercom 920 1200 Baud 139.00 


Smartmodem 1200B 359.00 

Smartmodem 2400 599.00 

Smartmodem 2400B 539.00 

Practical Peripherals 

Practical Modem 1200SA 179.00 


Drive Plus 20 MB Card $499.00 

T-120 20 MB Tape-Backup 469.00 

T-160 60 MB Tape-Backup 699.00 


A210H 10 + 10 Bernoulli Box... 1899.00 

A220H 20 + 20 Bernoulli Box. ..2499.00 


Drive Card-20 689.00 

Drive Card-30 949.00 


Innerspace ID-60AT 1349.00 


ST-4026 20 MB Hard Drive 689.00 

ST-4038 30 MB Hard Drive 739.00 


Thomas A. Penfield 
Sales Manager, CMO 

usiness, person to person. 



LBP-8 Lazer see special 


MSP-10 Dot Matrix 299.00 

MSP-20 Dot Matrix 349.00 

Premier 35 Daisy wheel 449.00 


8510-SEP Dot Matrix call 


635 Daisywheel 1099.00 


FX-85 Dot Matrix call 

FX-286 Dot Matrix call 

LQ-800 24 Pin call 

LQ-1000 24 Pin call 

Hewlett Packard 

2686A Laser call 

7475S Plotter call 

7550S 8-pen Plotter call 


6100 Daisywheel call 

6300 Daisywheel call 

551 0C Color call 


P560, P660, P760 call 

3550 Spinwriter 779.00 

8850 Spinwriter 1099.00 


ML-192 IBM call 

ML-193 IBM call 

OK293 Dot Matrix call 

OK2410 Hi Speed call 


KX-1091 Dot Matrix 229.00 

KX-1592 Dot Matrix 469.00 

Star Micronics 

NX-10 Dot Matrix 249.00 

SR-15 Dot Matrix 549.00 


P321 24 Pin 479.00 

P351 24 Pin 1049.00 


MD-2 DS/DD 5V4 12.99 

MD-2HD Hi Density 5Va 24.99 


MD2D DS/DD 5Va 11.99 

MD2HD Hi Density 5 1 /4 24.99 

MFD-2DD DS/DD 3V 2 5 pak 9.99 




AT&T from $1699.00 

Compaq from $1499.00 

Corona from $995.00 

IBM-PC from $1199.00 

IBM-XT see special 

IBM-AT from $2799.00 

Leading Edge from $1299.00 

Sperry $1899.00 

Zenith from $995.00 


Six Pak Plus PC/XT $169.00 

Six Pak Premium PC/XT 369.00 

Advantage IBM/AT 339.00 

Rampage PC/XT 279.00 

Rampage-AT IBM/AT 479.00 


IRMA PC-3278-I/0 849.00 


EV-640 Edge Card 259.00 


Graphics Card 219.00 

Graphics Card Plus 219.00 

Color Card 169.00 


IDE-5251 Emulation Board 589.00 


1110 PC-Above Board call 

2010 AT-Above Board call 

8087, 80872, 80287, 802878 call 


Modular Graphics Card 269.00 

Color/Mono Card 139.00 

Multidisplay Card 179.00 

Polaroid Pallette 

Computer Image Recorder 1399.00 


Quad EGA Graphics Adapter.. ..369.00 

Expanded Quadboard 1 49.00 

Silver Quadboard 239.00 


EGA Plus w/Dr. Halo 319.00 


Vega Video adapter-EGA 339.00 


Color Card w/parallel 89.99 

Monochrome Card 99.99 

576-Memory Card 59.99 

CM Only! 

5th Generation 

Fast Back 


CM Only! 


310A Amber 


CM Only! 

Auto Switch 
EGA Card 


CM Only! 


Smartmodem ^a^a 

1 200 External TQ f 5j 

CM Only! 


20 MB Kit 

w/Western Digital 


CM Only! 




CM Only! 

1100 + 




CM Only! 

Laser Printer 


When you want to talk computers. 

When you want to talk price. 

Call toll-free: 1 800 233-8950. 

Outside the U.S.A. 717 327-9575 Telex 5106017898 

CMO. 477 East Third Street, Dept. Alio, Williamsport, PA 17701 

All major credit cards accepted 



Steve Lambert and 
Suzanne Ropiequet eds. 
Microsoft Press 
Redmond, WA: 1986 
619 pages, $21.95 

Jon Bentley 
Reading, MA: 1986 
195 pages, $14.95 



Marc J. Rochkind 


Englewood Cliffs, NJ: 1986 

265 pages, $24.95 


Reviewed by 
Paul E. Hoffman 

Very few technologies 
come with their own 
fanfare before they are 
generally available to the 
public. The possibilities for 
CD-ROMs (compact-disk 

read-only memories), however, have intrigued so many 
people that the announcements and pronouncements on 
their future have preceded their commercial use. Industry 
prognosticators often use phrases like "revolutionary 
medium" and "huge acceptance" when they discuss 

CD ROM: The New Papyrus is a hefty collection of papers 
on all aspects of CD-ROMs, ranging from the technical 
aspects of how data is stored and retrieved to the com- 
mercial aspects of CD-ROM technology. The authors of 
the papers are active in the CD-ROM industry, and they 
speak with the authority and enthusiasm that you would 
expect from people in a cutting-edge field. Fortunately. 
The New Papyrus is not simply a glowing report of how 
wonderful the CD-ROM will be; it includes a number of 

skeptical views and warn- 
ings about what needs to 
be done to encourage con- 
sumer acceptance of the 


CD-ROMs are very similar 
to audio compact-disk 
players except that they 
hold data instead of music 
(for an extended discussion 
of CD-ROMs, see the May 
BYTE theme articles). A 
single CD-ROM disk can 
hold more than 500 mega- 
bytes of information, or half 
a billion characters of text. 
Unlike floppy disks, CD- 
ROM disks can be read 
from but not written to. 
These two features, huge 
storage capacity and no 
capability for modification, 
force hardware and soft- 
ware manufacturers to treat 
CD-ROMs very differently 
from current magnetic 

The New Papyrus covers a 
wide latitude of subjects 
and is thus a useful refer- 
ence both for people new 
to the field and for those who already know something 
about it. Forty-five articles are arranged into sections by 
topic. The structure of the book makes it easy for readers 
to skip the familiar parts and get to the meat of each arti- 
cle. While some articles are highly technical, many are sim- 
ply theoretical discourses on the future of CD-ROMs. 

The book's introduction offers a useful overview of the 
current state of the CD-ROM industry. It includes a fas- 
cinating article by Vannevar Bush, written in 1945, that 
predicted the technology of the CD-ROM medium before 
computers were even commercially available. The second 
section on the CD system covers the nuts-and-bolts tech- 
nical issues of CD-ROM hardware and file systems. 
Other sections of The New Papyrus cover the steps in- 



OCTOBER 1986 -BYTE 65 



Clocksin & \J \J 

Mellish Prolog for BOTH 
major microcomputing 
operating systems — 
with full cross-compatibility. 

Complete with the predicates 
necessary for POWER AI programming: 

op () name () functor () clause () = .. ("Univ") 

...And no constraining data typing. 


Floating point 
Math functions 

Step-by-step tutorial 
Integrated editor 


Extensible overlay library, 
8087 support, large memory 
model (up to 640K) 


Complete Macintosh en- 
vironment with extensive 
pull-down menus and 
dialogue boxes. 

No Risk Offer: Examine the PRO LOG A or 
PROLOG/ m documentation at our risk for 30 
days. II not completely satisfied, return with 
disk still sealed for refund. 


Complete with SOURCE CODE 

NFL X-pert $4995 

A true interactive expert system written by a 
professional knowledge engineer. A valuable 
learning tool for any Prolog programmer inter- 
ested in using Prolog to develop expert systems. 

TOOLBOX $29 95 

More than 50 subroutines that speed and com- 
press list handling, searches, sorts, and reversal 
algorithms. An inside look at the tricks of the 
professional Prolog programmer. 

TOYBOX $29 95 

Written by an academician to help his students 
understand Prolog, this collection of puzzles 
and mind-teasers will illustrate how the Prolog 
programmer creates programs that find the 
best solution to the problem. Turn your com- 
puter into a super reasoning machine! 




System Requirements: 

Minimum 256K RAM 
(320 K recommended) 
ANSI Standard Support 

Minimum 512K 
Macintosh-plus and 
HFS Compatible 



SUITE 126 B 



(619) 483-8513 

SAVE 10% when you 
buy either PROLOG /i 
or PROLOG/m and all 
3 applications. 

I PHONE ORDERS: 1-800-621-0852 EXT 468 


CA residents add 6% sales tax 
D CHARGE MY: □ MasterCard 

■ Card No. 

"■ Signature 

□ Visa 

Exp. Date . 

Mr. /Mrs. /Ms. 

(please print lull name) 

City /State /Zip 

mem an mm mm 

PROLOG/i $99.95 ■ 

PROLOG/m 99.95 I 


MS-DOS □ Mac Q , 

NFL X-pert 49.95 I 

TOOLBOX 29.95 I 

TOYBOX 29.95 g 

Pack 188.82 I 


$ 5.00 U.S. 
7.50 Canada 
10.00 Carribean, 
Hawaii Air 
20.00 Overseas Air « 

volved in producing a CD-ROM (it's significantly more com- 
plicated than producing a floppy disk) and designing the 
data that goes on CD-ROMs. The authors of these sec- 
tions explain in great detail the salient features of CD- 
ROMs that must be addressed before you can create a 
CD-ROM. Even though CD-ROM disks contain much more 
information than floppy disks, it takes longer to find in- 
formation on a CD-ROM drive than with even an inexpen- 
sive floppy disk drive. This means that manufacturers must 
spend a great deal of time analyzing the best way to ar- 
range the information on the disk before putting their data 
on a master for duplication. On the other hand, this 
necessity means that you can arrange data "neatly." which 
is more difficult on media like floppy disks. 

The book's final sections cover the future of CD-ROMs 
in publishing and other applications. The publishing sec- 
tion discusses the importance of computer display tech- 
nology to the public acceptance of CD-ROMs, since most 
people are happier with books on paper than on a com- 
puter screen. Most of the applications in the last section 
discuss CD-ROMs as giant databases for specific fields 
such as library science, medicine, and law. The use of CD- 
ROMs in vehicle navigation suggests the unexpected 
places that we may find CD-ROMs in the near future. 


Since almost every author represented in The New Papyrus 
works in the CD-ROM industry you might expect all the 
articles to paint a rosy picture of the future of CD-ROMs. 
That is not the case, although many authors chose to ig- 
nore some of the major technical difficulties of CD-ROMs. 
The first two sections of the book were especially well ba- 
lanced with respect to the strengths and weaknesses of 
the medium. 

The technical articles go into great detail about both 
hardware and software. Instead of glossing over the tech- 
nical points, The New Papyrus presents detailed descriptions 
of the servo systems and optics of the CD-ROM readers. 
The book also covers many system-level software issues 
such as error detection and correction and how to design 
file systems that exploit the medium's strengths while 
minimizing its weaknesses. You may find that the 60 pages 
of technical information alone are worth the price of the 
book. Other sections also contain technical detail that 
many readers are unaccustomed to in a book that is sup- 
posed to be an overview of a new technology. For exam- 
ple, the article on cartographic databases includes the data 
structures for the maps that the authors describe. 

Another example is the article on compressing digitized 
images; the author ably describes the technical problem 
and solution to getting as many images as possible onto 
a CD-ROM disk. Unfortunately other authors ignored the 
technical aspects of the system when they wrote their ar- 
ticles and ended up describing systems that would be ex- 
cessively slow and clunky due to the long seek time of 
CD-ROM readers. 

You may find The New Papyrus interesting reading if only 
to see the discrepancy between some of the suggested 


66 BYTE • OCTOBER 1986 

Inquiry 60 for End-Users. 
Inquiry 61 for DEALERS ONLY. 






dBase III 







Word Processing Editors 








Database Systems 

R BASE 5000 







$ 89 
$ 65 






$ 99 
$ 89 
$ 49 

Integrated Packages 







LOTUS 1-2-3 










$ 99 






$ 79 

Network Applications 














R BASE 5000 








Desktop Environments 


$ 69 


$ 69 


$ 39 


$ 39 

Project Management 




Productivity Tools 













$ 99 
$ 85 
$ 99 
$ 49 






C86 C COMPILER $319 















BPI $309 








Hardware * 

Multifunction Boards 
AST ADVANTAGE (128K) $349 
AST I/O MINI $139 


AST 6 PAK PLUS (64K) $169 

PREMIUM (512K) $359 





JRAM 3 (OK) 

PC TURBO 286 (1MB) 




Display Boards 


CARD $199 

CARD $159 



SIGMA EGA 350 $379 

SIGMA COLOR 400 $449 


MASTER $399 



Emulation Boards 

AST 5251-11+ $649 

AST 5251-12 $499 

AST BSC $489 

AST SNA $599 

IRMA $799 

SMART ALEC 5251 $699 


AST REACH 1200 $359 

HAYES 1200 $389 

HAYES 1200B $349 

HAYES 2400 $579 

HAYES 2400B $549 

TRANSNET 1000 $279 
VENTEL 1200 


VENTEL 1200 PLUS $300 

WATSON $339 

Mass Storage/Backup 
IOMEGA 10+10 W/INTFC $1999 
IOMEGA 20+20 W/INTFC $2599 
IRWIN 120D 20MB TBU $599 
IRWIN 145AT 40MB TBU $699 

20MB $719 

PRIAM 42MB AT $949 


20 MB (INT) $625 



(INT) $1199 

TECMAR QIC-60H (EXT) $1599 





Drivecard 20 

Vs Card 

Perfect 4.1 


AMDEK 600/722 

TAX AN 630/640. 




EPSON LQ-1000 
NEC 3550 

Input Devices 











256K RAM SET $ 39 

8087 MATH CHIP $135 

80287 MATH CHIP $199 


$719 $369 K $349 $839 





We will match current 

nationally advertised 

prices on most products. 

Call and compare. 






with your order 



Checks— allow 14 days to clear. Credit processing— add 3%. COD orders— cash, 
M.O. or certified check— add $5.00. Shipping and handling UPS surface— add $3.00 
per item (UPS Blue $8.00 per item). NY State Residenls— add applicable sales tax. 
All prices subject to change. 

In New York State call (718) 438-6057 

MON.-THURS. 9:00AM-8:00PM 
SUN. & FRI. 9:00AM-4:00PM 

Softline Corporation 
P.O. Box 729, Brooklyn, N.Y. 11230 
TELEX: 421047 ATLN Ul 
FAX: 718-972-8346 byt-1 

Inquiry 276 


Inquiry 31 

Put Wings On Your PC... 

For a lousy $1 99.00 (excl. VAT.) 
your IBM (or IBM-compatible) PC will be 

twice as fast: 


Test results with 

Lotus®, Open-Access®, WordStar® dBaselll®. .. 
(may differ by program) 'Si-factor 1,7. 

Speed variable from normal (4.77 MHz) 
to Turbo (10 MHz). 

> Guarantee: 1 year 

1> Technical requirements: 1 free slot 

(normal length) 
1» Includes: 1 Turbo board 

+ installations instructions 
h Delivery 

cash-on-delivery (postal charges extra). Delivery 
on first-come, first-serve basis. Offer valid as long 
as supply lasts. 

Order today! 

A-3400 Klosterneuburg • Egon Schielegasse 24 



"It's a Bloody 

—William E Buckley, Jr. 

William F. Buckley, Jr.* editor of National Review, writer and political 
commentator famous for his way with words, says: "Your Word Finder has 
changed my life! I never used to use a thesaurus... the speed is incredible, 
the wit of its arrangements marvelous." 
PC Week agrees: "A huge synonym list. . .the intelligence of the word-list 
[makes it] a genuinely useful business tool." 
Finding the RIGHT word and finding it FAST can mean the difference 
between success and failure, in business or anywhere. 
More words. OVER 220,000 SYNONYMS. 4x the competition. 
Easier to use. • Not copy-protected • A more contemporary 
vocabulary • Uses only 31K of memory • Works with 24 popular 

word processors (see list below) • Best price performance. 
Write better memos, make better speeches, expand your vocabulary. 
(Students improve SAT test scores.) Get your way with words. 

COMPATIBLE WORD PROCESSORS: DisplayWrite 3. Easy. Easy Writer II. Einstein-Writer, Framework. IBM Writing Assistant, 

Leading Edge. Microsoft Word, M ultimate. Norton Editor, OfficeWriter, Palantir, Pfs.Write. Practiword. Ready, Sidekick, 

SuperWriter, Think Tank. Volkswriter Deluxe, Word Perfect, Wordstar. Wordstar 2000. and XyWrile III. 

•Mr. Buckley volunteered this statement about Word Finder, and is not being compensated lor his endorsement. 

( ' ■ f e CP/M ver SIO n has 120. 000 synonyms.) Interested dealers plea se call or write. 

Fill oul this coupon and send to: 


ONLY $79.95 

Special volume discount: east Rochester.' ny 14445 
ONLY S395.00 
for 10 Word Finders 


EXT 123 

(In NYS: 716-377-0130) 

EXT 123 


■ I JI^I#EIV Computer. 


Add $2.50 shipping. NYS residents also add sales tax. 

My check for $ attached, {use envelope) 

C.O.D. □ 

VISAD MCn AMEXD Expiration Date 

Card # 




City State 

Zip Phone 

Op Sys 

I DOS Si/4- 

l CP/M" Format_ 

applications and the limitations of the medium. It is clear 
that many authors were enamored of the capacity and ig- 
nored the access-speed problems. Only a few of the ar- 
ticles address how the CD-ROM will fit in with the current 
state of computers where users expect to be able to save 
information in their own formats for future use. Some 
authors assumed that consumers would want to be able 
to access vast quantities of data on a computer, while 
others noted that the assimilation of computers has 
already slowed and that the expected boom in electronic 
publishing has failed to materialize to the extent predicted 
a few years ago. 

The New Papyrus describes the important features of CD- 
ROM use. A great deal of space is devoted to a discus- 
sion of how the user will interact with such a large quan- 
tity of data. Appropriate warnings are given to people de- 
signing CD-ROM applications: If they do not do a great 
deal of planning, their products will go unused. Since 
many of the proposed applications for CD-ROM tech- 
nology involve people who haven't used computers 
before, the user interface for handling such a huge amount 
of data will be very important. 

Some of the articles go off on tangents that detract from 
the overall quality of the book, but they are easy to skip. 
Most of the book is well grounded in facts and concepts 
that the readers can use. One criticism, though, is that the 
authors' biographies are at the end of the articles instead 
of at the beginning. Many articles describe commercial 
products, and it is disconcerting to find at the end of an 
article that some of the products described are produced 
by the author's company. While some authors are candid 
about their company affiliations, others slip in references 
to their products without indicating their legitimate biases 
about them. The skeptical reader should read the author 
biographies before reading the articles. 


CD ROM: The New Papyrus contains enough information to 
give any reader an in-depth view of the CD-ROM market. 
Considering how few CD-ROM players are in commercial 
use, this collection covers an incredible amount of infor- 
mation from a wide variety of sources. It will be a valuable 
reference over the next few years as CD-ROM technology 

Paul E. Hoffman (2000 Center St.. Suite 1024, Berkeley, CA 
94704) writes and edits books. He holds two degrees from MIX and 
he is the editor of 'Ifext In Computers, a new scholarly jour- 


Reviewed by Michael O'Neill 

Ion Bentley's column "Programming Pearls" has ap- 
peared in the journal Communications of the Association for 
Computing Machinery (CACM) since 1983. This popular 
feature presents interesting and useful programming tech- 


68 B YTE • OCTOBER 1986 

Inquiry 347 

"a marvelous little CAD system" 

Listen To What The Critics Are Saying About ln*a*Vision 

PC Week September 1985 

"Stands out from the crowd." "It has the makings of a winner." 

InfoWorld February 1986 

"In*a*Vision is very easy-to-learn and easy-to-use." 

PC Magazine March 1986 

"Fast, accurate and fun to use." "Excellent template system." 

Computer Buyers Guide March 1986 

"A remarkable value." "Fast and easy to learn." 

PC Magazine 

i_ ■& e 




. i \ 

4 \ 



6 | a 



Power. Versatility. Ease. All 
of these add up to perform- 
ance. And performance is what 
In*a*Vision is all about. 


"What surprised us was how 
fast In*a*Vision works." 

PC Magazine 
"Even complex command 
sequences are generated with 
lightning speed." 

"This is arguably the first piece 
of software that fully utilizes 
the power of the AT." 

Computer Buyers Guide 


"In*a*Vision's text provisions 
are flexible and impressive." 

This advertisement was created with 
In*a*Vision and output at 300 DPI. 

"The spooling mechanism is a 
real timesaver." 

PC Magazine 

"The system is ideal for the kind 
of fine detail work that engi- 
neers, draftsmen and designers 

Computer Buyers Guide 


"An hour with In*a* Vision and 
even the most devoted MAC 
fan will be a convert." 

PC Magazine 

"The program is quickly mas- 
tered; intuitive quickness is 
what this system is all about." 

"The program's ease-of-use and 
speedy execution allow you to 
concentrate on design..." 

Computer Buyers Guide 


The Picture of Success 

"In*a*Vision is so easy to learn 
that its menu bar will tempt you 
to begin using it without even 
reading the documentation." 

"The program's use is intuitive." 

Order Now! 

Yes, I want to improve my CAD performance 

with In*a*Vision. 

Please send me copies at $495 each. 

Optional Clip Art library 

(two diskettes) copies at $39.95 each. 

I enclose: Q Check Q Money Order 
f"| Visa Q] MasterCard 
[""I Amer. Exp. 



Company Name 






Credit Card No. 

Exp. Date 

Send to: MICROGRAFX, Inc. 

1820 N. Greenville Ave. 
Richardson, TX 75081 
In Texas: 214-234-1769 

Runs with or without Microsoft Windows 
on two-floppy or hard disk IBM PC or 
compatible with 320K; hard disk and 
512K recommended. 

Inquiry 197 

OCTOBER 1986 -BYTE 69 




Is the power supply a FORTRON®? 

Your PC represents a substantial investment, it does not 
make sense to risk costly downtime or system failure due to 
the use of a so called "BARGAIN" power supply 

At Fortron we insist on quality and reliability that is what 
earned us a full U.L. rating, and why we feel confidence in 
offering our warranty as well as technical support. 

Invest in the best and you will be delighted at how little it 
cost to be powered by FORTRON® 


FC 5192 

PC AT |200W) 

SI 89.00 






S 1 29.00 

S 1 09.00 

U.L. recognized, file #E-IOII)5[s) 

• OVR OCR short circuit protection 

Meet European safety spec. 

• IBM® standard pin-out or Faraday 

115/230 AC convertible 

Type pin-out selectable 

Low noise DC fan 

• 100% 24 hrs burn-in, 100% pre- 

Good for up-grading PC or 

shipping test. One full year 

replacement to original PC 


power supply. 

• Meet FCC class B. 

tfe FORTRON ORDERS ONLY: |800) 82 1-9771 

3225 SELDON CT. \N CALIF.: (4 1 5) 490-8 1 7 1 



niques gathered from a variety of sources: journals, pro- 
grammers' folklore, the author's own experience, and that 
of his friends and correspondents. Programming Pearls con- 
sists of revised and expanded versions of thirteen of these 

ample Choice 

Bentley usually presents more than one application of 
each technique; Column 2 and Problem 2.2, for example, 
explain some not widely known applications of the wide- 
ly known binary search technique. Bentley often presents 
more than one way of solving a given problem as well. 
For instance, in Column 1 1 he shows five different ways 
to perform one task, and he details the conditions under 
which one or another approach would be superior. 

Programming Pearls contains some awfully clever tricks. My 
favorite is the combination of tricks that is used to store 
the dictionary for a commercial spelling checker program. 
Doug Mcllroy, the program's author, managed to store 
75,000 English words in 52K bytes, less than a fifth of the 
space required for storing the dictionary as ASCII char- 
acters. (Sorry, I don't have the space here to tell you how 
he did it.) Column 2, "Aha! Algorithm," and its associated 
problem set contain several very clever tricks, too. There 
are many more. But Bentley does not present cleverness 
for the sake of cleverness; each of his tricks provides in- 
creased efficiency, comprehensibility, or both. 

The book, however, is not just a bag of tricks; Bentley 
has tried, with some success, to organize his material into 
a coherent whole. While there may be many books on pro- 
gramming, there are few collections of tricks of the trade. 
Programming Pearls is the best collection I've seen. 

Structural Schemas 

The book is divided into three parts: "Preliminaries," "Per- 
formance," and "The Product." The first section contains 
material dealing with what might be called pre- and post- 
programming issues. Here Bentley offers program plan- 
ning and verification techniques. "Performance" contains 
the columns that concern ways of producing efficient pro- 
grams. "The Product" consists of four columns in which 
Bentley presents applications of the previously given tech- 
niques to more involved programs such as the spelling 
checker. This organizational scheme is very approximate; 
there is considerable overlap of material from section to 
section, and the assignment of columns to sections is 
somewhat arbitrary. 

Bentley imposes a second form of organization by high- 
lighting certain motifs that recur throughout Programming 
Pearls. Each column includes a section called "Principles" 
in which the author lists the motifs that appear in the col- 
umn. Some of these motifs are programming techniques 
such as binary search; others are general principles such 
as "Keep it simple" and "Work on the right problem." This 
organizational scheme effectively links the individual col- 
umns together and is more successful than the previous- 
ly mentioned three-part schema. 

Bentley includes a section of hints and solutions to 


70 BYTE • OCTOBER 1986 

Inquiry 112 for End-Users. 
Inquiry 113 for DEALERS ONLY. 

Powerful MS-DOS Software. 

For the IBM®- PC, XT, AT & others with generic MS-DOS/PC-DOS 2.0 or higher. 







• :<• 


Whether student, teacher or professional programmer, 
this is the one you've heard so much about. 
It'seasy to use. Compiles 5000 statements on a 128K 

170 clearerror messages, i.e. DATA-NAME IS 
Distribute your object code programs royalty free. 
Small object code programs conserve disk space. 
Fast compile times to increase programmer pro- 
ductivity. Over 25 times faster than one compiler 
costing $995! 

You get a diskette and 213-page manual with lots of 
examples and 16 complete COBOL source code 
programs. $39.95. 

Also available: COBOL Application Packages, Book 1 $9.95. 








14-digit precision, BCD math, no round-off errors 

with decimal arithmetic for business and floating point + 63 

-64 for scientific. 

A very niceTRACEstyledebugging. 

Arrays up to 8 dimensions and 64K strings. 

External procedures and functions with dynamic 


One-step compile, no assembly or link required. 

You get a 132-page manual and diskette. $39.95 








Perfect for industrial training, office training, drill 

and testing, virtually all programmed instruction, word 

puzzle games, and data entry facilitated by prompts. 

John Starkweather, Ph.D., the inventor of the PILOT 

language, has added a built-in full-screen text editor, 

and much more. 

Meets all PILOT-73 standards for full compatibility with 

o/der versions. 

You get a diskette, 125-page manual and ten useful 

sample programs. $39.95. 

Also still available for 8-bit machines with CP/M® is our world famous 
Nevada Software Series used by 50,000 customers in 40 countries. 
These include Nevada COBOL, Nevada FORTRAN, Nevada PASCAL, 
Nevada PILOT, Nevada BASIC and Nevada EDIT. $39.95 each. 
Satisfaction guaranteed. If for any reason you're not completely 
satisfied, justreturn the package within 15 days in good condition, and 
we'll refundyour money. 

IBM is a registeredtrademark of International Business Machines Corp. 
CP/M is a registered trademark of Digital Research. MS is a trademark 
of Microsoft Corp. © 1985 Ellis Computing, Inc. 




□ FORTRAN IV based upon ANSI-66 standards. 

□ Very fast compile times and easy to use. 

□ IF.. THEN.. ELSE constructs. 

□ Chaining with blank and named common. 

□ Copy statement. 


□ Free-format input and output. 

□ A very niceTRACEstyledebugging. 

□ 150 English language error messages. 

□ You get a diskette, and 223-page manual. $39.95 






A character-oriented full-screen video display text 
editor designed specifically to create COBOL, 
FORTRAN and PASCAL programs. 

□ Only requires 15K disk space so it can fit on the 
same disk as your compilers. 

□ Completely customizable tab stops, default file 
type, keyboard control key layout and CRT by menu 

□ Diskettecomes with easy to read 58-page manual. $39.95. 




This interpreter has a built-in full-screen editor. 

Single- and Multi-line user definable functions. 

BCD Math- no round-off errors. 

Full Matrix operations. 

You get 220-page manual and diskette. $39.95. 

Handling/Shipping: No shipping charge within US. Overseas 
add $10 for first package, $5 each additional. Checks must be 
in US Dollars, drawn on a US bank. 

Utah Software requires 128K RAM and PC-DOS or MS-DOS 2.0 or higher. 

HOW TO ORDER. Send check or money order to Ellis Computing, Inc. 
with VISA or MASTERCARD order by phone. Sorry no COD's. 

^^^^ Ellis Con 
M ^ 5655 Rig< 

m ■ Reno » Ne 

W Phone (7 

SINCE 1977 


Ellis Computing, Inc. 
5655 Riggins Court, Suite 10 
Reno, Nevada 89502 
Phone (702) 827-3030 

Inquiry 1 02 

OCTOBER 1986 -BYTE 71 


Aunt Betty's Baked Good5 

A typical DBMS user's screen, after the 
497th line of code. 

With most database 
management soft- 
ware for the IBM 
PC family and com- 
patibles, you're quickly confronted 
with a painful reality: the only way 
to make your package live up to 
its promise is to learn its program- 
ming language. Which can take 
months. Then you have to write 
the code, line after frustrating line. 

But now, there's R:BASE™ 
System V. And for the first time, 
you can quickly create programs 
that automate your most impor- 
tant data management tasks. 
Without programming. 

Of course, with R:BASE 
System V, you can enter, query, 
and report on data in a non- 
automated, ad hoc fashion. With- 
out programming. And there's a 
high-level procedural language for 
programmers. But that's just the 





With the EXPRESS System 
in R:BASE System V, you can 
access powerful features, without 
programming, that other data 
management software can't touch. 

With Definition EXPRESS, 


— Choose an operator to combine conditions-Choose (Done) when done- 






March 12, 1985 

American Baking Company 

An R:BASE System V Prompt-By-Example 
(PBE) screen. With PBE's query capabil- 
ities, you can retrieve just the information 
you need. Without programming. 

you can build a database structure 
with advanced features like com- 
puted columns, and searchable note 
fields. VIEWS that combine up to 
five tables in a single, powerful 
table. Data validation rules that 
check incoming data for errors. 
All without programming. 

Then you can use Forms 
EXPRESS to create customized 
data entry forms. The forms you 
create can load data into five 
different tables, linked in One-To- 
Many relationships. You can also 
include scrolling regions, custom 
borders, and custom colors, all 
without programming. 

And with Reports EXPRESS, 
you can design reports exactly the 
way you want. And see what 
they'll look like, right on the 
screen. To see how complex your 
reports can be, take a close look 
at the example at the end of 
this page. 

Finally, you can tie it all to- 
gether with Application EXPRESS. 
First, you design your own multi- 
level system of menus. Your first 
menu level might look like this: 

"Aunt Betty's Sales Reporting System 

(1) Enter Sales Data 

(2) Edit Sales Data 

(3) Print Daily Sales Report 

(4) File Processing 

(5) Exit 

For each menu choice, you assign 
an action. For example, to define 

Transaction date; 6/23/86 


Transaction number: 4609 

Customer number: 666 

name; 5peedy Shopper. Inc. 
Address: 4092 Industrial Way 
City, 5tate, Zip: Dryden, Mew York 13053 
Phone: 000-555-0661 

Stock » Brand fity. 

207 Bake-A-Batch Cookies 93 

308 Peanut Butter Crunch 100 

Price Extended Price 
2.00 186.00 

2.50 25000 


Double Rich Brownies 




A data entry screen designed without 
programming, using Forms EXPRESS. 

menu choice #3, choose the action 
"PRINT" select the report you 
just created in Reports EXPRESS, 
and specify the appropriate data 
sorting and selection criteria. 
Then Application EXPRESS auto- 
matically writes the program code. 

Which means youve just 
created a very sophisticated pro- 
gram to deliver the full power of 
your DBMS. And youve done it all 
without learning how to program. 
From this point on, every time you 
want to run a report, all you do is 
choose item #3. With one simple 
keystroke, youve got it. 






If youre an experienced pro- 
grammer, you can use R:BASE 
System V to tackle the most 
demanding applications. You can 
use Application EXPRESS to 
create prototypes faster than with 
any other microcomputer- 
based DBMS. 

There's a high-level proce- 
dural language, and a full set of 
relational operators that can lever- 
age up to 80 tables, all of which 
can be open at once. While you're 
racing along, a data dictionary 


keeps track of the action. 

For demanding analyses, 
there's a set of 70 math, statistical, 
financial, scientific, and string 
manipulation functions. You also 
get more capacity for your data. 
Comprehensive menu-driven 
import/export capabilities. Super- 
ior relational power. And much, 
much more. 





In addition to its standalone 
personal computing power, 
R:BASE System V has all the fea- 
tures you need to share data on a 
local area network (LAN) built 
right in. When you're ready to 
network— now or later— this is 
the only DBMS package you'll 
ever need. And no matter how 
many users you add, you'll never 
have any growing pains. Because 
an unlimited number of users, 
attached to a LAN, can access 
R:BASE System V. 


We're confident you'll find 
R:BASE System V the shortest 
distance to your data management 
solution. Visit your computer 
dealer for a trial run. Or, if you 
prefer, we'll send you a Trial Pack 



8:00 am 


J* June 24. j 986 




A V 

Altni Betty's Baked Q 

%' ,y S.He. Report 

r F °rJune23, 1986 


1 01-1986 

^ Sou thern California 

3 Cracker Products 
^ VV heat Crisps 
Rve Crackers 
Total C ra ckerProdUc(Sales 

^■'Swc Goods ProduclSa|es 

Cr a cke rProduc , s 
"heai Crisps 
"ve Crackers 

To,a, Cracker Pro ductSa , es 
S-ee,G oodsProd 





25.006 23 





499.47]. 77 

57,406 25 

232.629.8 j 




5 ' 7 .446.25 


for only $15.95, plus shipping. It's 
a fully functional, row-limited 
version of R:BASE System V Just 
call 1-800-547-4000, Dept. 969. 
In Oregon or outside the U.S., call 
1-503-684-3000, Dept. 969. 

What if you already own 
R:BASE 5000? If you bought your 
copy before June 30, 1986, you 
can trade it for the full power of 
R.-BASE System V. For only $99. 
(Offer expires January 31, 1987.) 
Just give us a call at 
1-800-248-2001. Outside the 
U.S., call 1-206-885-2000. 

A program to print this report daily, 
with a one-keystroke menu pick, 
was developed without program- 
ming using R:BASE System V's 
EXPRESS Technology. Whether 
you know how to program or not, 
R:BASE System V is the shortest 
distance to your data management 


'"■■*: - 

Trademarks/Owners: Microrim, 
RrBASE/Microrim, Inc.; IBM/International 
Business Machines, Inc. ©1986 Microrim, Inc. 





Little Board/186™. 

High Performance, Low Cost PC-DOS Engine 

(not included) 

► Three times the COMPUTING POWER of 

a PC 
» Data and File Compatible with IBM PC, 

runs "MS-DOS generic" programs 
' 8 MHz 80186 CPU, DMA, 

Counter/Timers, 128/512K RAM zero 

wait states, 16-128K EPROM 
» Mini/Micro Floppy Controller 

(1-4 Drives, Single/Double Density, 

1-2 sided, 40/80 track) 
• 2 RS232C Serial Porte (50 -38,400 

baud), 1 Centronics Printer Port 

► Only 5.75 x 7.75 inches, mounts 
directly to a 5-1/4" disk drive 

► Power Requirement: +5VDC at 1.25A; 
+12VDC at .05A; On board -12V 

► SCSI/PLUS™ multi-master I/O 
expansion bus 

» Software Included: 

• PC-DOS compatible ROM-BIOS boots 
DOS 2.x and 3.x 

• Hard Disk support 


PROJECT BOARD/186™ - adds 25 
square inches of wire wrap 
prototype area with buffered and 
pre-decoded 80186 bus interface 
for Little Board/186 

EXPANSION/1 86" - adds five key 
options to Little Board/186 

• 512KRAM 

• 8087 co-processor 

• Battery-backed Real Time Clock 

• 2 RS232/422 sync/async serial 

• I/O expansion bus 

use of software that writes to 
display controller "VIDEO RAM" 

SCSI/IOP 1 " - permits connection of 
off-the-shelf STD bus industrial I/O 
interfaces (analog, digital, serial, 
display, power control, etc) 


MICROCOMPUTERS, (613) 500-0628, 
LEMPEREUR, (041 ) 23-45-41, TLX 42621 
LTDA, (41) 262-1939, TLX 416132 CANADA: 
TRI-M, (604) 438-9012 DENMARK: DAN8IT, 

(03) 66 20 20, TLX 43558 UK: AMBAR 
SYSTEMS LTD,, 0296 3551 1, TLX 837427 
FINLAND: SYMMETRIC OY, 358-0-585-322, 
(1) 4502-1800, TLX 620893 ISRAEL: ALPHA 
TERMINALS, LTD., (03) 49-16-95, TLX 341667 
SWEDEN: AB AKTA, (08) 54-20-20, TLX 1 3702 

IBM®, IBM Corp.; 80186®, Intel, Corp,. 


67 East Evelyn Ave, • Mountain View, CA 94041 • (415) 962-0230 
TELEX 4940302 • FAX (415) 962-1042 

selected problems and a catalog of the algorithms con- 
tained in the book (classified by type). 

Different Approaches 

I have two suggestions about how to read this book. First 
the epilogue, in which Bentley interviews himself, is the 
best summary of the purpose of the book and the themes 
that run through it; read it first. Second, each problem 
set has many practice problems closely related to the 
material in its associated column. Try to do each problem 
set before reading the column because it may be too easy 

Ion Bentley has produced a fascinating collection of pro- 
gramming tricks. He obviously enjoys programming, and 
his enthusiasm and writing skill make this book fun to read 
as well as educational. By emphasizing recurring motifs, 
Bentley stresses techniques and rules of thumb that are 
of general usefulness for writing programs that are cor- 
rect, fast, compact, and easy to understand and maintain. 
If you are a programmer who wants to improve the quali- 
ty of the programs you write, Programming Pearls is well 
worth reading. 

Michael O'Neill (2227 Dwight Way #4, Berkeley, CA 94704) has 
been programming computers for 20 years. 


Reviewed by Brian Edginton 

Here, at last, is a book that can be put on the shelf 
next to definitive standards such as Kernighan and 
Ritchie's The C Programming language (Prentice-Hall, 1978) 
and Kernighan and Pike's The UNIX Programming Environment 
(Prentice-Hall, 1984). Marc Rochkind has given us a tech- 
nically coherent and complete guide to programming in 
the UNIX operating systems. System III, System IV, 
Berkeley 4.2, and XENIX. He has demonstrated the dif- 
ferences in programming techniques between the different 
systems and has conveniently included information relat- 
ing specifically to XENIX. 

System Calls 

Most programmmers write applications for end users that 
require little, if any, direct or visible interaction with the 
operating system. In fact, most of the common operating 
systems other than UNIX require that system calls and 
operating system interfaces be written in assembly lan- 
guage, a skill few COBOL or FORTRAN programmers have 
or want. The UNIX operating system requires the full use 
of system calls to display its entire range and flavor. These 
calls give the programmer very fine control over the 
operating system and the functionality of the programs. 
The chapters divide the system calls into logical groups. 
These include a review of fundamental concepts, file I/O, 
terminal I/O, signals, processes, and interprocess commu- 
nication. The book concludes with a collection of miscel- 
laneous system calls and two appendixes that contain a 


74 BYTE • OCTOBER 1986 

Inquiry 25 

If you think 

you cant afford a UNIX system. 

we vegota $160 surprise. 

Turn your PC into a 
multi-user system. 

Convert your IBM PC-AT 
(or compatible) into a multi- 
user/tasking UNIX work 
station— at absolutely the best 
price anywhere, any time. 
Based on the AT&T-certified 
UNIX System V/286, the 
is designed for use in vir- 
tually any computer environ- 
ment, from office automation 
to software development. 

Over 200 utilities 
come standard. 

Grep, awk, sort, split, cut, paste, vi and 
ed (and many more) now let you search 
and modify files, make use of electronic 
mail, emulate terminals, calculate elec- 
tronically, convert data and publish. 

SYSTEM V/AT is more than a look-alike. 
It was derived from AT&T's own UNIX 
System V release 2 iAPX286. It thereby 
contains standard System V features the 
competitors don't support, such as the 
powerful symbolic debugger, sdb, the 
shell-layering job-control facility and the 
F77 Fortran compiler, as well as program- 
ming tools such as ctrace, cflow, and bs. 
Also standard is File System Hardening 
which greatly reduces data loss in a power 

Want some more features? 

Console driver providing ANSI terminal 
interface for monochrome, CGA, 
Hercules and EGA cards. 

Multiple Virtual consoles allow up to 
four virtual windows of operation. 

Record and File Locking 

Supports the 286's 16 megabyte virtual 
address space and fully utilizes its other 
advance features. 

Supports all standard IBM drive types 
and most non-standard hard-disk 

Requires only one hard-disk partition, 
and allows DOS to reside on the same 
hard disk. 

Provides utilities to transfer files to-and- 
from DOS file systems. 

U N I X and D WB ar e trademarks o I AT&T 

IBM and IBM PC-AT are trademarks of IBM CORPORATION. 


Inquiry 198 

Dynamic disk buffer allocation provides 
RAM disk performance for systems with 
large memory configuration. 

Rups on virtually all PC-AT clones. 

• Binary compatible 
with the AT&T 6300 
Plus UNIX System. 

So, how do we do it? 

Super software- 

We've provided everything: Make, 
yacc, lex, sees, cflow, ctrace plus every 
standard System V software-development 
tool. The F77 Fortran compiler. And the 
AT&T Portable C compiler for the 286. Both 
C and Fortran compilers generate 287 in- 
structions directly— for systems not con- 
taining 287 math coprocessors, a kernel- 
resident IEEE-compatible 287 emulator is 
provided. The large-model code produced 
by the compiler is among the densest and 
fastest currently available. 

fraction of the price of the competitors 
simply because we build on the generic 
System V/286 product from AT&T This en- 
tire utility package from the certified 
release has been copied directly to 
SYSTEM V/AT— without so much as a 
recompile. Not only does this mean that 
MICROPORT can offer SYSTEM V/AT at a 
remarkable low price, it also guarantees a 
level of quality present in few (if any) other 
UNIX-system implementations. (And, since 
our staff was part of the group that im- 
plemented the standard System V/286 
port for Intel, MICROPORT can offer com- 
prehensive support for the system, as 

And a dollar change 

The price is even better than you 
thought. Order right away and we'll return 
one silver dollar just as rapidly with your 
product shipment. (If you'd like a little more 
time we'll apply that dollar to the cost of a 
brochure— which we'll send right away 


dollar change. 

To order: Complete the information below. Your 
attractively-packaged and fully-documented order will be 
shipped within two weeks. 


4200 Scotts Valley Drive 
Scotts Valley, CA 95066 
408/438-UNIX or 800/PC2-UNIX (outside CA) 


D RUNTIME SYSTEM Includes the SYSTEM V/AT operation 
system and over 200 utilities, for two users. 

QUANT: $160.00 

Software Generation System for 286 development. 

QUANT $169.00 

□ TEXT PREPARATION SYSTEM Includes nroff, troff, spell 
and other programs. 

QUANT $169.00 

□ THE COMPLETE SYSTEM Contains all three packages 
indicated above. 

QUANT: $439.00 

□ OPTIONAL three to eight-user upgrade. 











(CA residents add 6.5°/o tax per copy): 

Shipping and handling charges (In the USA, 
$14.00; in Canada, $18.00; and in Europe, $110. . . .: 

□ Send a brochure only and keep me on your mailing list, 


Complete, high-performance 
data-analysis software from: 


Unbeatable power and flexibility for 
unbeatable prices! 

1. STATS-2™ (release 2.1): A complete, 
superfast statistical package. Can also 
be used as a statistical supplement for 
Lotus 1-2-3™ and other spreadsheet 
programs. Runs on IBM™ and compat- 
ibles, 256k, 2dd, 8087 support $149 

2. STATFAST-2™ (release 2.1): The 
most powerful statistical package 
developed for the Macintosh™ 
128k/512k/Plus, 1dd $119 

3. APP-STAT™: A complete statistical 
package for the Apple II™ family of 
computers, 1dd $99 

4. PSYCHOSTAT-3™: A complete sta- 
tistical package, available for Kaypro™ 

and all CP/M™ computers, 1dd $99 

All of these statistical packages are user friendly and super- 
easy to use. They include the full range of basic statistical 
analyses (descriptive statistics, t-tests, correlations, cross- 
tabulations, nonparametric statistics, and much more) and 
advanced multivariate statistics (comprehensive multiple 
regression with forecasting, general multifactor ANOVA/AN- 
COVA up to 5 factors including a covariate, repeated mea- 
sures, contrasts, unbalanced designs, and more). All pack- 
ages can handle data files of unlimited size, include flex- 
ible Data Editors with complex transformations and com- 
plete data-base management functions, and can access 
data files from spreadsheets, data-bases, and mainframes. 

Ask for our statistical packages for other computers. 

TO ORDER: Send check, credit card number, or money order 
(plus $5 shipping and handling) to: 



2832 EAST 10TH STREET, SUITE 4, TULSA, OK 74104 

To order by phone (Visa, MasterCard, COD. orders accepted) or talk to 
our technical staff for more information, call (918) 583-4149. 

Macintosh. Apple II. Kaypro. and CP/M are trademarks of respective companies 


summary of subroutines and System V process attributes. 
An excessive number of technical books on the shelves 
today spend an inordinate amount of time telling you 
"how to." There are books on programming and systems 
design that contain hundreds of lines of code but spend 
very little time explaining why and when to use the skills 
they teach. Advanced UNIX Programming goes beyond the 
normal how-to mindset and teaches the philosophy behind 
the different system calls. Rochkind very capably describes 
when to use the system calls that parallel each other in 
function and details the most common side effects of each 
call so that readers and programmers can decide which 
best meets their intended purpose and goals. This is very 
important when you are dealing directly with the operating 
system and when you want to avoid hours of debugging 
the results of an undocumented "feature." 


Programming in UNIX involves the use of some com- 
plicated techniques to exhaust all the features available with 
a true multitasking system. And since this is still an evolv- 
ing operating system, the ability to add or modify existing 
support and application programs that depend on the hard- 
ware peculiarities of new and enhanced peripherals is of 
primary importance to the systems programmer. 

Terminal I/O is a complex topic that is handled very 
thoroughly in a chapter by itself. Terminal communications 
in UNIX take place through programs called device drivers. 
The user makes a request to the kernel for data transfer 
through a particular device, and that request is passed 
off to the appropriate device driver for processing, com- 
pletion, and error detection and recovery if necessary or 
appropriate. This means the device driver must be very 
comprehensive and must fully use a great many of the 
available system calls. 

The chapter on terminal I/O is indicative of the complete- 
ness and depth found throughout the book. With more 
than three structure types and 50 different flags to deal 
with in working with the typical communications line, the 
information is well presented and easily understood. 

Multitasking and Processes 

A full chapter is devoted to multitasking, one of the main 
features of the UNIX operating system. Ttoo chapters are 
devoted to interprocess communication. Rochkind takes 
the reader through a tutorial on the environment and ex- 
plains how to use system calls to read and write to the 
process environment, a feature that allows users to 
customize features of their shell. He also explains how to 
use other application programs that read environment 

Since almost everyone who uses UNIX is familiar with 
the shell and how it operates, the author demonstrates 
the system calls exec, fork in its various forms, and related 
calls by building a small shell. The detail and complexity 
of the shell and its features are developed and matured 
as more and more system calls are discovered. This is an 
excellent way to learn to use the system calls because it 


76 BYTE • OCTOBER 1986 

Inquiry 288 

The C for Microcomputers 

PC-DOS, MS-DOS, CP/M-86, Macintosh, Amiga, Apple II, CP/M-80, Radio Shack, 
Commodore, XENIX, ROM, and Cross Development systems 

8086/80x86 ROM 

Manx Aztec C86 

"A compiler that has many strengths . . . quite valuable 
for serious work" 

Computer Language review, February 1985 

Great Code: Manx Aztec C86 generates fast executing 
compact code. The benchmark results below are from a 
study conducted by Manx. The Dhrystone benchmark 
(CACM 10/84 27:10 pl018) measures performance for a 
systems software instruction mix. The results are with- 
out register variables. With register variables, Manx, 
Microsoft, and Mark Williams run proportionately faster, 
Lattice and Computer Innovations show no improve- 






Link Time 

Dhrystone Benchmark 

Manx Aztec C86 3.3 34 sees 


93 sees 

Microsoft C 3.0 34 sees 


119 sees 

Optimized C86 2.20J 53 sees 


172 sees 

Mark Williams 2.0 56 sees 


113 sees 

Lattice 2.14 89 sees 


117 sees 

Great Features: Manx Aztec C86 is bundled with a powerful 

array of well documented productivity tools, library routines 

and features. 

Optimized C compiler Symbolic Debugger 

AS86 Macro Assembler LN86 Overlay Linker 

80186/80286 Support Librarian 

8087/80287 Sensing Lib Profiler 

Extensive UNIX Library DOS, Screen, & Graphics Lib 

Laige Memory Model Intel Object Option 

Z {vi) Source Editor -c CP/M-86 Librai-y -c 

ROM Support Package -c INTEL HEX Utility -c 

Library Source Code -c Mixed memory models -c 

MAKE, DIFF, and GREP -c Source Debugger -c 

One year of updates -c CP/M-86 Library -c 

Manx offers two commercial development systems, 
Aztec C86-c and Aztec C86-d. Items marked -c are 
special features of the Aztec C86-c system. 

Aztec C86-c Commercial System $499 

Aztec C86-d Developer's System $299 

Aztec C86-p Personal System $199 

Aztec C86-a Apprentice System $49 

All systems are upgradable by paying tbe difference 
in price plus $10. 

Third Party Software: There are a number of high qual- 
ity support packages for Manx Aztec C86 for screen 
management, graphics, database management, and soft- 
ware development. 

C-tree $395 
PHACT $250 
HALO $250 
PRE-C $395 

PC-lint $98 
Amber Windows $59 
Windows for C $195 

WindScreen $149 FirsTime $295 
SunScreen $99 C Util Lib $185 
PANEL $295 Plink-86 $395 

CP/M-68K, 68k ROM 

Manx Aztec C68k 

"Library handling is very flexible . . . documentation is 
excellent ... the shell a pleasure to work in ... blows 
away the competition for pure compile speed ex- 
cellent effort." 

Computer Language review, Apiil 1985 
Aztec C68k is the most widely used commercial C com- 
piler for the Macintosh. Its quality, performance, and 
completeness place Manx Aztec C68k in a position be- 
yond comparison. It is available in several upgradable 

Optimized C 
Macro Assembler 
Overlay Linker 
Resource Compiler 
Source Editor 
MacRam Disk -c 
Library Source -c 

Creates Clickable Applications 
Mouse Enhanced SHELL 
Easy Access to Mac Ibolbox 
UNIX Library Functions 
Terminal Emulator (Source) 
Clear Detailed Documentation 
C-Stuff Library 
UniTools (vi,make,diff,grep) -c 
One Year of Updates -c 

Items marked -c are available only in the Manx Aztec 
C86-c system. Other features are in both the Aztec C86-d 
and Aztec C86-c systems. 

Aztec C68k-c Commercial System $499 

Aztec C68d-d Developer's System $299 

Aztec C68k-p Personal System $199 

C-tree database (source) $399 

AMIGA, CP/M-68k, 68k UNIX call 

Apple H, Commodore, 
65xx, 65C02 ROM 

Manx Aztec C65 

"The AZTEC C system is one of the finest software 
packages I have seen" 

NIBBLE review, July 1984 

A vast amount of business, consumer, and educational 
software is implemented in Manx Aztec C65. The quality 
and comprehensiveness of this system is competitive 
with 16 bit C systems. The system includes a full optim- 
ized C compiler, 6502 assembler, linkage editor, UNIX 
library, screen and graphics libraries, shell, and much 
more. The Apple II version runs under DOS 3.3, and 
ProDOS, Cross versions are available. 

The Aztec C65-c/128 Commodore system runs under 
the C128CP/M environment and generates programs for 
the C64, C128, and CP/M environments. Call for prices 
and availability of Apprentice, Personal and Developer 
versions for the Commodore 64 and 128 machines. 

Aztec C65-c ProDOS & DOS 3.3 $399 
Aztec C65-d Apple DOS 3.3 $199 

Aztec C65-p Apple Personal system $99 
Aztec C65-a for learning C $49 

Aztec C65-C/128 C64, C128, CP/M $399 

Distribution of Manx Aztec C 

In the USA, Manx Software Systems is the sole and ex- 
clusive distributor of Aztec C. Any telephone or mail 
order sales other than through Manx are unauthorized. 

Manx Cross Development Systems 

Cross developed programs are edited, compiled, assem- 
bled, and linked on one machine (the HOST) and trans- 
ferred to another machine (the TARGET) for execution. 
This method is useful where the target machine is slower 
or more limited than the HOST, Manx cross compilers 
are used heavily to develop software for business, 
consumer, scientific, industrial, research, and education- 
al applications. 

HOSTS: VAX UNIX ($3000), PDP-11 UNIX ($2000), MS- 
DOS ($750), CP/M ($750), MACINTOSH ($750), 
CP/M-68k ($750), XENIX ($750). 

TARGETS: MS-DOS, CP/M-86, Macintosh, CP/M-68k, 
CP/M-80, TRS-80 3 & 4, Apple II, Commodore C64, 
8086/80x86 ROM, 68xxx ROM, 8080/8085/Z80 ROM, 
65xx ROM. 

The first TARGET is included in the price of the HOST 
system. Additional TARGETS are $300 to $500 (non 
VAX) or $1000 (VAX). 

Call Manx for information on cross development to the 
68000, 65816, Amiga, C128, CP/M-68K, VRTX, and 

CP/M, Radio Shack, 
8080/8085/Z80 ROM 

Manx Aztec CII 

"I've had a lot of experience with different C compilers, 
but the Aztec C80 Compiler and Professional Develop- 
ment System is the best I've seeri." 

80-Micro, December, 1984, John B. Harrell III 

Aztec C H-c (CP/M & ROM) $349 

Aztec C H-d (CP/M) $199 

C-tree database (source) $399 

Aztec C80-c (TRS-80 3 & 4) $299 

Aztec C80-d (TRS-80 3 & 4) $199 

How lb Become an Aztec C User 

To become an Aztec C user call 1-800-221-0440 or call 
1-800-832-9273 (800TEC WARE). In NJ or outside the 
USA call 201-530-7997. Orders can also be telexed to 

Payment can be by check, COD, American Express, 
VISA, Master Card, or Net 30 to qualified customers. 

Orders can also be mailed to Manx Software Systems, 
Box 55, Shrewsbury, NJ 07701. 

How lb Get More Information 

lb get more information on Manx Aztec C and related 
products, call 1-800-221-0440, or 201-530-7997, or write 
to Manx Software Systems. 

30 Day Guarantee 

Any Manx Aztec C development system can be return- 
ed within 30 days for a refund if it fails to meet your 
needs. The only restrictions are that the original pur- 
chase must be directly from Manx, shipped within the 
USA, and the package must be in resalable condition. 
Returned items must be received by Manx within 30 
days. A small restocking fee may be required. 


There are special discounts available to professors, 
students, and consultants. A discount is also available on 
a "trade in" basis for users of competing systems. Call for 

Inquiry 181 

To order or for information call: 


Inquiry 84 


Full Screen Editor for MS-DOS (PC-DOS) 

Looking for an Ultra-Powerful Full-Screen editor for 
your MS-DOS or PC-DOS system? Are you looking for 
an editor FULLY COMPATIBLE with the UNIX*V1 
editor?Are you looking for an editor which not only runs 
on IBM-PC's and compatibles, but ANY MS-DOS 
system? Are you looking for an editor which provides 
power and flexibility for both programming and text 
editing? If you are, then look no further because PC/V1 

The following is only a hint of the power behind PC/ VI: 
English-like syntax in command mode, mnemonic control 
sequences in visual mode; full undo capability; deletions, 
changes and cursor positioning on character, word, line, 
sentence, paragraph or global basis; editing of files larger 
than available memory; powerful pattern matching capabil- 
ity for searches and substitutions; location marking; 
joining multiple lines; auto-indentation; word abbrevia- 
tions and MUCH, MUCH MORE! 

The PC/VI editor is available for IBM-PCs and generic 
MS-DOS based systems for only $149. For more 
information call or write: 

Custom Software Systems 
P.O. Box 678 
Natick, MA 01760 

The UNIX community has been using the VI editor for 
years. Now you can run an implementation of the same 
editor under MS-DOS. Don't miss out on the power of 

*UNIX is a trademark of AT&T Bell Laboratories. 


Advanced UNIX 

Programming is an invaluable 
aid in creating more efficient 

exercises the programmer's skill and imagination in a 
learn-by-doing situation. 

Although this book is directed toward experienced pro- 
grammers who have already perfected their own bad 
habits, the style and consistency of the code examples 
will be a help to anyone who chooses to use this work 
as a guide or text. 

Interprocess Communication 

By the end of the fifth chapter, the author has covered 
most of the system calls used in programming and still 
has four more chapters to go. 1 say most because the calls 
used in interprocess communications are rarely imple- 
mented because of the lack of understandable documen- 
tation available before now. 

Pipes are generally understood at a lower level because 
shell programmers have always been able to use the "[" 
symbol to connect the output of one program with the 
input of another. In completing the shell started in the 
chapter on processes, Rochkind goes into detail on the 
construction and use of pipes. Bidirectional pipes are ex- 
plained, along with examples of where a pipe can be used 
and several examples of where pipes should not be used. 

FIFOs, semaphores, and shared memory are the ad- 
vanced interprocess communications techniques that have 
been developed and carried across the System III and 
System V families. Communications that were developed 
for the Berkeley family are not as portable or as easily 
understood as AT&T's and are not covered in this book. 

FIFOs are fancy pipes with names and attributes like files 
so that they can be used by different processes, and quite 
a bit of time is spent developing the proper use of FIFOs 
in a database management system application. The cov- 
erage of this topic is quite lively, and several primitives 
or functions are developed and supplied to the readers 
for their toolboxes. 

I have covered only half the information in this book; 
its depth and comprehensiveness go farther. The infor- 
mation is presented with thought and humor, and the 
author displays a genuine understanding of the subject 
matter. There are exercises at the end of each chapter that 
can aid in developing skills in using system calls effective- 
ly. No matter what version of UNIX you work with, the 
information in Advanced UNIX Programming will be an in- 
valuable aid in creating more efficient programs. 

Brian Edginton (551 Ramona Ave.. Salt lake City, UT 84105) is 
a consultant for UNIX, XENIX, PC-DOS, and networking 
applications. ■ 

78 BYTE • OCTOBER 1986 

Inquiry 165 

The Shape. Sharp. Sleek. And amazingly 
adaptable. The Genicom 1000 Series Desktop Printers. 
Ready for anything from business forms to spread- 
sheets; word processing to heavy-duty data processing. 
With letter quality printing at 100 cps. And data 
processing printing at 200 cps. Open the clamshell 
casing and look inside. Discover just how simple the 
future can be. 

The Personality. IBM* Epson; Diablo*-the 
Genicom 1000 can be all of these printers and more. 
Because we've built their personalities into plug-in 
cartridges. Changing personalities is as easy as changing 
your mind. Simply plug in the personality cartridge of 
your choice, and your Genicom 1 000 is off and running. 
Working with almost any PC or software program you 
care to mention. Effortlessly. 

'j* Express your personality. With font 
*^jP^ cartridges that plug right into the front 
of the printer. Pick your type; you've got 
hundreds of fonts to choose from. Insert 
up to three cartridges at once, and vary 
type styles within the same document. 
The Design. The Genicom 1 000 is the first desk- 
top printer designed with common sense, right 
down to its built-in printer stand. 

The unique design also makes paper load- 
ing faster and easier than ever before. Feed 
tractor paper straight through the bottom. Or 
from the rear. With Genicom's automatic, zero 
tear-off bar, no matter how you feed it, you'll 
never waste a piece of paper again. 

Whenyou wanttoprinton letterhead, justfeed single 
sheets of paper, typewriter style. You don't even have 
to remove the tractor paper. 

IBM is a registered trademark of International Business Machines Corp. 
Epson is a registered trademark of Epson America, Inc. 
Diablo is a registered trademark of Xerox Corporation. 

Inquiry Il8 

But the 1000 Series was 
designed for more than ease 
of use. It was also designed for 
performance. Its 18-wire printhead 
delivers high resolution graphics and word 
processing printing that can only be called letter quality. 
The Controls. Easy to adapt. Easy to use. And 
easy to control. With the Genicom 1000's front panel, 
total command is at your fingertips. Choose fonts, 
character spacing, line spacing, form length and print 
quality with the push of a button. No dipswitches. And 
no fumbling inside the printer. 

The Track Record. When it comes to reliability, 
Genicom stands by its record. We've created a full line 
of printers: from desktop models to machines that print 
800 lines per minute. Our printers have proven their 
rugged dependability performing for some of the world's 
largest corporations. Now we're ready to prove it to you. 
So stop by your authorized Genicom dealer today 
and ask for a demonstration of the new 
1000 Series; the 1025 and the 1020 
for wide column printing. We think 
you'll agree, these printers are a 
radical departure from the crowd. 
For the Genicom dealer nearest 
you, call 1-800-437-7468. In 
Virginia, call 1-703-949-1170. 


The Printers That Mean Business. 

One Genicom Drive, Waynesboro, VA 22980 

Simply put: THE "highest quality and 
best value in computer products anywhere. 

THE ™ commitment to otir 

customers is compatibility, 

quality, value, 

service and support 

THE M backs 

every product with a 

45 DAY 



and a 





This multi-function card features 
0-384K memory, a parallel printer port, 
a serial port for communications, 
a clock/calendar with battery backup, 
and a software bonus that includes 
RAMdisk and other utilities. Retail $90.00 


100% compatible with the IBM ,M colorcard 
with display modes of 80x25 alphanumeric 

and 320x200 graphic. Retail Price S75.00 






Supports 0-576K of available memory and is 
compatible with all IBM™ PC's. Retail $46.25 






Supports all text and graphics features 
and is fully compatible with third party 

Software. Retail Price $23.13 





•All Items Subject to Availability — Prices Subject to Change 
TM— Registered Trademarks of IBM/Ast Research/ 


100% Hayes compatible 


This self -testing 1200 BPS modem comes 
with auto dial, auto redial and 
a built-in speaker. Retail Price $161.25; 






Features auto answer, dial and redial, with 
a built-in speaker, RS 232-C serial port 

and PC Talk III. Retail Price $148.75 






Eight times the speed of a 300 BPS unit 
makes this 2400 Baud modem truly 
affordable, and we've made it truly 
compatible. With auto answer, auto dial, 
auto redial, and a built-in speaker with 

Volume Control. Retail Price $346.25 






This monochrome graphics card with 
printer port features 100% IBM™ and 
Hercules™ compatibility, at a fraction of 

their prices. Retail Price S91.25 


si 20.00 VRIVBI 


• Paperback Writer 

• Paperback Speller 

• Numberworks 


All three for only. . . 


With the purchase of a PC + 


Featuring a half -height IBM™ PC 
compatible internal 20MB disk drive, 
controller card, connecting cables 
and installation manual. Retail $458.75 






Feature for feature, THE™ matches 
the AST™ I/O + and comes up a winner, 
with serial/parallel and game ports 
standard, (a second serial port 
optional), a clock/calendar, RAMdisk 

and print Spooler. Retail Price $75.00 



With 256K standard this 100% IBM™ EGA 
and Hercules Graphics compatible card is 
ideal for high resolution graphics display 
of Microsoft™ Windows, Lotus™ and 

Retail Price $283.75* 





Thompson, Harriman and Edwards Computer 



Thompson, Harriman and Edwards 
Computer Products Company Ltd. 


THE™PC + is compatible with all 

business, professional and personal 

software written for the IBM™ PC. It will 

also enhance your productivity with its 

ability to switch to an 8 megahertz clock 

rate, enabling you to run your software 

twice as fast as the IBM™ PC. THE™ PC + 

also comes standard with an "AT" style 

keyboard, correcting the inefficiencies 

found by IBM™ on their regular PC 

keyboard. 256K standard (640K optional) 

on the mother board will allow you to run 

memory intensive programs such as 

Lotus 1-2-3, DBase III and Framework 

without adding extra memory cards. Plenty 

of power, with a 135 Watt source and 

lots of room for expansion 

with 8 card slots is also 

standard. Base unit 

includes: 256K RAM, 

Computer with 

One 360K 5W Floppy 

Drive, Dual Turbo Clock 

Speed, 8 Expansion 

Slots, 135 Watt Power 

Supply, 'AT" Style 

Keyboard, Full 

1 Year Warranty 

and 45 Day 

Money Back 


Retail Price $586.25* 




" :■::, ■ : '. : 

" ■ 







'THE PC -f- is well built 
and has enough company 
support behind it to make it 
a very a ttractive alternative to 

ffl^lilj higher-priced competition, " 



(Monitor Not Included) 

r 1 f J } I 1 I 

I / I I 1 I ill 1 

i I t " i i ' . 5 " ! ' J ' i ' l I m 

1 \ 

256K RAM, 



Disk Drive, 

Turbo Speed, 

"AT" Style 

in\ Keyboard 

PC Network 

*JUI prices in this ad are wholesale— PC Network 
Members pay wholesale + 8% and shipping. 


(800) 621-SAVE 

In Illinois (312) 280-0002 

Special Wholesale Price 

$444. 00 

$469.00* for 640K System 


Products Company Ltd. Deale rInqui ries Ca u THE '" at (312) 642 " 9626 

319 West Ontario Street, Chicago, Illinois 60610 



Listed below are just a few of the over 30,000 products available at our EVERYDAY LOW PRICES! 
The Network carries products for Apple, IBM, CP /M and most other popular computer families. 


(Please add $1 shipping and handling for each title ordered from below.) 

Penguin Graphics Magician 28.97' 

Penguin Pensate/XyphusfTransylvania-Mac Only 17.70* 
Professional Software Trivia Fever 23.97' 

Pryorlty Software Forbidden Quest 21.00' 

Scarborough Master Type 22.77' 

Scarborough Run (or the Money 26.00' 

Simon & Schuster Typing Tutor III 28.25' 

Sir-Tech Wizardry 26.97' 

Sir-Tech Knight ol Diamonds or Rescue Raiders 18.97* 

Arrays Home Accountant-Mac Only 

Bluechlp Baron/MillionairefTycoon 

Broderbund Lode Runner, Choplifter 

Broderbund Print Shop 

Broderbund Dazzle Draw 

CBS Murder by the Dozen 

CBS Goren Bridge Made Easy 45.00* 

Counterpoint The News Room 26.97' 

Davidson Speed Reader It 31.00* 

Davidson Math Blaster or Word Attack! 21.50* 

1st Byte Smooth Talker-Mac Only 44.00' 

Hayden DaVinci-House/lnteriors/Landscapes 23.00* 

Hayden Sargon III 24.75' 

Infocom Deadline or Suspended 24.00' 

Infocom Enchanter, Planetfall, 20.00* 

Cutthroats, Witness or Zork I 

Infocom Hitchhiker's Guide or Seastalker 20.00' 
Infocom Suspect, Sorcerer. Inlidel. Zork II or III 22.00' 

Layered Front Desk-Mac Only 65.00* 

Miles Computing Mac Attack-Mac Only 20.50' 

Palantlr Mac Type-Mac Only 26.37' 


(Please add $2.50 shipping and handling for each title ordered from below.) 
►Apple Apple Works 
Aaslmllatlon Process/Mac Memory Disk 


Subloglc Night Mission Pinball 

Subloglc Flight Simulator II 
►Spinnaker Alphabet Zoo, Face Maker, 
Kinder Comp, Hey Diddle Diddle, 
Rhymes & Riddles, Story Machine 
►Spinnaker Most Amazing Thing/Delta Drawing 
►Spinnaker Delia Drawing 

T/Maker Click Art-Mac Only 

Warner Desk Organizer 

Vldex Fun Pack-Mac Only 

Videx Mac Checkers & Reversal 

Virtual Comblnatlcs Micro Cookbook 



Beagle Brothers Macro Works 

Borland International Reflex for the Mac 

Borland International SlaeKicK w/pnonelink 

Borland International Turbo Pascal 


Broderbund Bank Street Writer 

Central Point Copy II Plus or Copy II Mac 

Epyx Winter Games 

Funk Software Sideways 

Funsoft Macasm 

Haba Habadex 

Harvard Mac Manager 

Human Edge Mind Prober 

Human Edge Sales Edge 

Human Edge Communication Edge 

$160.00* ►Living Vldeotext ThinkTank-Mac Too! $75.00* 

19.25' Main Street Filer-Mac Only 67.00' 

MECA Managing Your Money 99.00' 

►Microsoft Word/File/Multiplan for Macintosh 97.50* 

Microsoft Excel for Macintosh 197.500" 

Microsoft Basic for Macintosh 75.00' 

Microsoft Char! for Macintosh 62.50* 

Monogram Dollars & Sense for Apple II 55.00* 

Monogram Dollars & Sense! or Macintosh 71.99' 

Odesta Helix lor Macintosh Reg's 512K 195.00' 

Provue Ovetvue-Mac Only 130.00' 

Sensible Software Sensible Speller IV 67.50' 

Softcraft Fancy Fonts 125.00' 

Softech Microsystems UCSD Pascal 37.00' 
Software Publishing PFS: File, Write, or Graph 61.00' 

Stoneware DB Master-Mac Too! 90.00' 

Telos Filevision for Mac 85.00' 


(Please add shipping and handling charges found in Italics next to price.) 






Apple MAC 800KB External Drive $349.95* 

► Haba 800KB Double Sided Mac Drive 215.00* 
lOmega Macnoulli 5MB Removable 999.00' 

Drive for Macintosh 
lOmega DuaHOMB Bernoulli for Mac 1.800.00* 

with SCSI Port 
Micro Sci A2 143KB Drive 

Just like Apple's Own 
Micro Sci Floppy Controller 
►Paradise Mac 10MB Hard Drive 

Hard Drive Subsystem 

► Paradise Mac 20MB Hard Drive 

Hard Drive Subsystem 

► PC Network 140K External Drive 

for Apple He 

► PC Netwoik 140K Drive for Applelle 95.00* 
Tecmar 5MB Removable Drive forM AC 999.00* 
Tecmar 10 MB MAC Drive 999.00' 


AST'" Multil/O-2 Serial/Clock $155.00' 

Microsoft Premium Softcard lie 243.67' 

Microtek Dumpling/GX 55.00* 

Orange Micro Grappler + 66.00' 

Orange Micro Serial Grappler 66.00* 

PC Network Z80 Card 35.00* 

Quadram APIC/G Graphics Interface 62.00' 

Quadram E RAM-80 88.00' 

Quadram Multicore-1 Parallel 140.00' 

1 Serial/Clock Expandable to 256K 

Thunderware Thunderclock 104.00' 

Titan Technologies Accelerator lie 207.35* 








(2 50) 




Hayes Micromodem He w/Smartcom $125.00' (2,50) 

Novation Apple Cat II 174.45* (3.50) 

Prometheus 1200 A 253.00' (6.00) 

Low Cost 1200 Baud Internal Modem for Apple II 

PTome\heusPromodem1200/MacPack 299.00' (6.00) 

Prentice Popcorn MacPack 219.00' (2.50) 

1200 Baud Modem, Cable, Straightalk 


Apple Macintosh Carrying Case 
Apple Macintosh Security Kit 
Curtis Ruby Surge Protector 
Hayes Mach III Joystick 

wIFire Button (or He 
Kensington Dust Cover for MAC 

or ImageWriter 
Kensington Starter Pack 
Kensington Surge Protector 
Kensington System Saver Fan 
►Koala MacVision 
Koala Koalapad Touch Tablet 
M&R Sup-R-Mod RF Modulation 
PC Network Cooling Fan with Surge 

Protector & Dual Outlets 
PC Network SSDDDiskettes(BoxofW) 
PC Network Macintosh Diskettes 

Includes Free Flip & File Case 

These Diskettes are Guaranteed forLifeINo Generics! 
Sony Mac Diskettes (Box of 10) 15.50* (1.50) 

Thunderware Thunderscan 155.00* (3.24) 









(1 50) 




(All Memory Chips Guaranteed for Llfel) 


►64K Memory Upgrade Kits (9 Chips) $7.75' (1.00) 

Quantity Discounts Available! 

►64K Dynamic Ram Chips (Each) 



►256K Dynamic Ram Chips (Each) 



►12BKIBMATMotherBoardChips (Each) 3.50* 


► Intel Co-Processor 


(2 15) 


Anchor Signalman Express 



Anchor Lightning 2400 



Hayes Smartmodem 300 



Hayes Smartmodem 1200 



►Hayes Smartmodem 2400 



Prometheus Promodem 1200 



U.S. Robotics Courier2400BPSModen 



U.S. Robotics Password 



THE" 1200 Com External 129.00' (2.58) 

THE" 2400 Com External 259.00* (5.59) 



Amdek Video 300G Composite Green $110.00' (3.00) 

Amdek Video 300A Composite Amber 120.00* (3.00) 

Amdek Video 31 OA IBM Type Amber 130.00' (300) 

Amdek Color 600 NEW! High Res RGB 365.00* (7.88) 

Amdek Color 722 Enhanced Graphics 424.00' (9. 16) 

Magnavox 121TL IBM Type Amber 79.00* (5.00) 

A great looking/performing monochrome 

NEC SC-1401 Multisync RGB 480.00* (10.37) 

Princeton HX- 12 RGB Monitor 369.00' (7.97) 

Princeton HX-12E CGAorEGA Monitor 430.00* (9.29) 

Princeton MAX-12e 138.00' (5.00) 

Works with Color or Mono Card 

Quadram Amberchrome 12' TTL 125.00' (2.70) 

Non Glare/Slow Phosphor 

Taxan 630 High Res RGB Monitor 383.00' (8.27) 

Taxan 640 Highest Res (720x400) 439.00' (10.69) 

Currently Available— Works with Persyst 

BOB Card & the AT&T Computer 

Zenith ZVM 1230A/HighRes/NonGlare 91.00* (2.50) 


"PC NETWORK-Members pay just 8"^abovethe wholesale price, plus shipping. All prices reflect a 3%cash discount 
Minimum shipping S2 50 per order International orderscall tor shipping & handling charges Money Orders, personal 
and company checkspleaseallow 10 working dayslo clear Al! pricessubiecl lo change without notice 1 
tRENT BEFORE YOU BUY-Members are eligible to join the NETWORK'S Business an* Game software Rental Libraries 
and evaluate products for a lull 14 (Regular) or 30 (ViP) days to see it i! meetsyour needs And The NE WORK'S rental 
ttiargesarelarlessthan other software rentalservices-JuslJO^OFTHE MEMBER WHOLESALE PRICE. Rental titles 
available in tBM/Apple/MACand CP/M Formats. Hardware prices highltled oy ► reflect recent major price reductions 


(Please add $1 shipping and handling for each title ordered from below,) 

ATI Intro to PC DOS Vol. I & II or BASIC 

Bluechlp Millionaire/Oil Baron or Tycoon 28.99' 

Broderbund Lode Runner 17.25' 

CBS Goren Bridge Made Easy 40.00* 

CBS Mastering the SAT 50,00' 

CDEX Training for Wordstar 37.25* 
Comprehensive Intro to Personal Computing 32.00' 

Davidson Math Blaster, Word Attack! 21.50* 

Davidson Speed Reader II 31.00' 

Hayden Sargon III 26.00' 

Individual Professor DOS 29.75' 

Individual T he Instructor 24.50' 

►Infocom Zork I or Witness 20.00' 

►Infocom Deadline or Suspended $24.00* 


Microsoft Flight Simulator 

Mouse Systems PC Paint- Turn your PC 

Into A Color Macintosh! 

Pinpoint Publishing Micro Cookbook 21.00' 

Scarborough Master Type 19.75* 

Sierra On-Line Crossfire 18.00' 

Sierra On-Line King's Quest II 24.75* 

Spectrum Holobyte GATO 18.00* 

►Spinnaker Alphabet Zoo. Kinder Comp, 15.97' 

Stoiy Machine. Face Maker, Hey Diddle. Diddle, 

Rhymes & Riddles 

►Spinnaker DeltaDrawingorMoslAmazingThing 20.75' 

Subloglc Jet 

Subloglc Night Mission Pinbati 


(Please add $2,50 shipping and handling for each title ordered from below.) 

► Ashton-Tate DBase III or Framework II $365.00* 
Beagle Brothers Macro Works 21 .00' 
Borland Turbo Pascal 35.00* 
Borland SideKick (Protected) 26.00' 
Borland SuperKey 34.50' 
BPI G/L. AtR or AJP 305.00' 
BPI Personal Accounting 43.75* 
Breakthrough Timeline 203.00* 

►Central Point Copy II PC 20.00' 

Computer Associates Supercnlc IV 239.95* 

Digital Research Gem Desktop 26.00* 

Digital Research Gem Draw 128.00" 

Enertronlcs Energraphics 147.00' 

FGS Fastback 85.00* 

Funk Software Sideways 32.00* 

► Harvard Haivard Project Manager 190.00' 
Harvard Total Project Manager 250.00' 

►Hayes Smartcom It-New VT100 Emulator 78.00' 

MicroPro Wordstar 2000+ 

MIcroRIm RBase 5000 

Microsoft C Compiler 

Microsoft Word-Latest Version 3.0 

Microsoft Mu Hi plan 

Microsoft Mouse 

Migent Ability 

Monogram Dollars & Sense 
►Multlmate Muttimate (Latest Version) 

Norton Norton Utilities 3. 1 

Open Systems P/O Sates A,R INV G/L 
AJP Team Mgr. - Ver. 3.X 

Power Base Power Base 

Real World G/l.A>P A/R or OE'INV 

Rosesoft ProKey Version 3 

Ryan McFarland RM COBOL (Dev. System) 
►Samna Samna III Word Processor 
► Samna Word + 

► Human Edge Management Edge or Mind Prober 24.00* ►Satellite Soflware WordPerfect 
Infocom Cornerstone 70.50' Softcraft Fancy Fonts 
Llfetree Volkswriter III 126.50* Software Group Enable 

► Lotus Development Lotus ' -2-3 280.00* Software Publishing PFS:File. Write.Graph 
MDBS Knowledgeman/2 229.00* software Publishing PFS.Report 

MicroPro Wordstar 2000 









(Please add shipping and handling charges found in italics next to price, 





► lOmega Bernoulli Box 

Dual 10MB Drives 

► PC Network 10MB INTERNAL 1/2 299.00* 

Height Autoboot Drive: New lower price 
PC Network 10MB Tape Backup 395.00' 

Same unit used in Compaq's Desk Pro! 
P C Networks T 42MB Internal HD 1,050.00* 

3SMS Access Time-Comes Complete 
PC Network 20MB Tape Backup 495.00' 

Halt Height Internal w/controHer 

► PC Network Hall Height DS/DD Drives 78.00* 
►Tandon TM-100 120.00' 

2 Full Height DS/DD Drives 
►THE" 20MB Internal 1/2 Height 357.00' 

Autoboot Drive: By Seagate or Microscience 


App3rat AT Rapn Expansion Card 
AST SixPakPremium '2MB Multi/OK 
►AST SixPakPlus'with64K 
AST " I/O Plus II " 
AST" Advantage for AT "" 
Everex Magic Card II 64K 
Quadram Gold Card 

384K Multifunction/Color Card w/OK 
Tecmar Captain Mulli Card w/OK 

► THE "576K Plus Memory Board w/OK 

► THE "Multl 384 A functional clone 

of AST's 'SixPakPlus. ' 
Includes up to 384K of expansion memoty, 
1 senal, 1 parallel. 1 game port, 
a clock/calendar and 3 software standard. 
►THE " Multi I/O Plus II Clone 60.00' 

Ser/Par/Game-'Clock standard 

Hayes Smartmodem 1200B $315.00' (2.50) 

with New Smartcom II T100 Emulator 

(6.46) Hayes Smartmodem 2400B 478.00' (2.50) 

PromelheusPromodem1200Blnternal 225.00* (250) 

(8.94) ►THE 'Internal1200 1200BPS Modem 109.00* (2.50) 

Lowest Cost Hayes Compatible w/FREE PC Talk II 


(10 69) 

Hercules Color Card w/Parallet Port $126.00* 
►Hercules Monochrome Graphics Card 162.00* 






< 35.00* 



(1.68) Orchid Turbo EGA Card 

(2.20) Paradise Modular Graphics Card 

Quadram Quad EGA + Enhanced 
(7 7i) Graphics Adapter 

►THE " EGA Plus EGA Clone 

with 256K & printer port 
►THE "H720 Mono Mono Graphics 
with parallel port, 100' 
(2.50) ►THE * Color Card 


(2 50) 

220.00' (2.50) 

Hercules Compatible! 


, IBM Compatible! 


►Brand Name DS/DD Diskettes $7.95' (1 00) 

Guaranteed for Life! Not Generic! 

► DS/DD Bulk Rate Special each. 54" 

Packaged in 50 with sleeves and labels 
Guaranteed for Life! 

► PC Network Replacement 130 Watt 79.00' (5.00) 

IBM-PC Power Supply— Gives your PC the same 
Capacity as an XT Good (or add in Tape Drives 
(without need for a piggyback unit) and large 
capacity disk drives. 
SM APCDocumate: Keyboard 9.99*ea. (1.00) 

Templates for Lotus/DBase/Multimate and others 


Apple Macintosh Base System 


►Central Point Laser 128 

S3 55.00* 

(7 67) 

Apple He and lie Compatible 

AT&T 7300 Unix PC 



10MB HardDiskrt Floppy/51 2K 

COMPAQ DeskPro W/256K 



1 Floppy.'30MB Hard Disk 

► Citizen MSP-W NEW! 




WOCPS/WCOUFric + Trac 

►Citizen MSP-15NEW! 


(7 34) 

l60CPS : 132COUFnc + Trac 

►Citizen MSP-20NEW! 



200CPS/80COUFnc + Trac 

►Citizen MSP-25NEW' 


(9 40) 

200CPS/132COUFnc + Trac 

►Citizen Premiere 35 NEW! 


(9 07) 

35CPS Daisywheel/132COL/Fric 

■f Trac 

Citizen 120-0 125CPS 10"/Trac 



►Epson LX80 100CPS/80COL/LO 



►Epson FX85 



►Epson FX 286 NEW! 



►Epson LQ 1000 NEW! 



Epson SO 2000 Inkjet Printer 



Epson DX 35 35CPS LQ Model 



►NEC 2030 20CPS LQ Parallel 



►NEC 2050 20CPS Letter Quality 



► COMPAQ Hard Disk Portable 

20MBHardDisk'l Floppy/256K 
y\BMPCBaseSystem2SDDFDC/256K 1 ,025.00' 

► IBM PC Professional Hard Disk 1,337.00' 
IBM PC/AT Base System- 1.2MB 2,875.00* 

IBM AT Professional System CALL 

1.2MB Floppy20MB Hard Disk/1 Ser/1 Par/512K 

$1,910.00* (41.26) 


Copyright & 1985, PC NETWORK, INC. 

►NEC 3530 33CPS LO Parallel 
► NEC 3550 33CPSLQ 
►NEC 8850 55CPS 
NEC PirtWriter P-7 180CPS/132COL 
Okidata ML 182 New 120CPS/LQ 
Model Fric/IBM Graphics & More 
Okidata ML 192 New Sleek Design 

i60CPS/LQ/Fric/IBM Graphics 
Okidata Color 20 80CPS/100 + 
Colors/LQ/IBM Graphics & More 
(Requires Interface) 
Okidata ML 193P 60CPS 
Okidata IBM Interface 
for Okidata Color 20 
Okidata ML 84P 200CPS/132COL 
Okidata 2410 P Pacemark 350CPS 
Panasonic KX-1091 120/75/22CPS 
Panasonic KX-1092 180CPSw /Tractor 
Toshiba P341 210CPS/132COL 
Toshiba P351 P/5 288CPS/132COL 

Prices subject to change without notice. 



(19. 18) 
(1 1.56) 


















(Optional local warranty service available in most major metro areas) 



Floppy Drive Controller 

2 Double Sided Double 

Density Disk Drives 

Mix and Match with 

your Favorite Monitor 

and Printer! 







IBM PC W/256K 
Floppy Drive Controller 
1 Double Sided Double 

Density Disk Drive 
Half Height Hard Disk 






256K/1 Floppy /20MB Hard Disk 



APPLE /fc 


256K CPU/1 Floppy/Hard Disk 





Quantity Discounts Available. 
Guaranteed fori 


juntsAvanaoie. ta 

% f t * * 


Set of 
9 Chips 



^■«=»ranteed for Life! 

3 1 / 2 "SS/DD 



Free Flip 
& File Case 


The Network buys direct 

and makes fantastic deals 

with manufacturers like MPI/ 


TEAC and others to bring you 

fantastic prices on Name 

Brand drives foryourPC/AT/ 

XT/jr/or Compatible. 


Quantity Discounts Available 



Low Power/Automatic Boot. Works on standard PC's 

and Compatibles. Includesdrive/controller/cables/ 

mounting hardware and instructions. 

Full one year warranty! 






Quantity Discount Available 





^Members pay 8% above this wholesale price plus shipping. 
CALL TOLL FREE 1-800-621-S-A-V-E {JSSSSm) 

In Illinois call (312) 280-0002 Validation code: B3X6 

Customer Service and Order Status (312) 280-1567 

TM & R-Registered trademarks of IBM/COMPAQ/APPLE/AST Research/LOTUS/Multimate lnt.,/IOMEGA. 



• Our 600 Page Wholesale Catalog 

Over 30,000 products priced at Wholesale + 8%. Anything 
you will ever need at a Consistent low price... 

• Quarterly Catalog Updates 

Your Catalog is never obsolete! Keep on top of the newest 
products and latest price changes. 

• The Printout 

Our newsletter gives you fantastic specials alog with 
unbiased analysis of new products and industry trends. 

• 10 Day Returns on any Hardware!! 

If you don't like any hardware product —for any reason 
—return it for a refund. 

• 1000 + Title Rental Library 

14 to 30 day rentals on over 1000 different titles. 
Try before you buy!! 

• Size, Strength and Stability 

The Network has over 150 employees, 45,00 square 
feet of office and warehouse space, inventory valued in 
excess of $15,000,000 and is ranked the largest computer 
product supplier in the nation! Our commitment is to serve 
our customers and our 90% repeat business rate is proof!! 

• On Line ,M Bulletin Board 

Download "Freeware" from the nation's largest single 
concentration of Public Domain software available! Get tied 
into the nation's largest technical information network! Place 
orders, get tech support or contact customer service from the 
Network's OnLine, '"not just a bulletin board but a complete 
customer information network. 


Iff kl 



(Orders— Membership and Advice!) 
In Illinois call (312) 280-0002 
Your Membership Validation Number B3X6 
You can validate your membership number and, if you wish, 
place your first money-saving order over the phone by using 
knowledgeable sales consultants are on duty Mon.-Fri. 8:00 
AM to 7:00 PM, SAT. 9:00 AM to 5:00 PM CST. 
kl 320 West Ohio 

Chicago, Illinois 60610 
Call now... Join the PC NETWORK and start saving today! 
Customer Service and Order Status (312) 280-1567 
8:30 AM to 4:30 PM, Mon.-Fri. CST 


YES! Please enroll me as a member inthePCNetwork~andsend my 
catalog featuring thousands of computer products, all at just 8% above 
DEALER WHOLESALE PRICES. I will also periodically receive "THE 
PRINTOUT," a special up-date on merchandise at prices BELOWeven 
those in my wholesale catalog, and all the other exclusive monev- 
saving services available to Members. 


I am under no obligation to buy anything. My complete satisfaction is 
guaranteed. Please check (•) all boxes that apply: 

Basic Membership 

with optional 14 Day Evaluation, 

D One-year membership for $8 

□ Two-year membership for 
S15 (Save $1) 

□ Business Software Evaluation 
Library for S25 add'l. per 
year-with 14-day returns 

D Games Software Evaluation 
Library for $10 add'l. per year 

□ Bill my credit card: DViSA 

Special V.I. P. Membership* 
with optional 30 Day Evaluation. 

D One-year membership for $15 
D Two-year membership for $25 

(Save $5) 
D BOTH Business and Game 

Software Evaluation Libraries for $30 
add'l. per year-with 30 day returns 
*Vl.R members may receive 
advance notice on limited quantity 
merchandise specials 
D MasterCard D American Express 


Exp. Date_ 


□ Check or money order enclosed for S. 






My computers) 

□ Macintosh DOthe 



□ Apple II 


(Signature required to validate membership) 

Inquiry 229 



product Preview: THIS MONTH OUR FEATURES SECTION starts with a Product Preview. The 

the apple h gs product in question, the Apple II GS. is the most recent incarnation in the 

by Gregg Williams and Richard Grehan .... 84 rather long and curious j ine f App ] e n s In t h e ir article. Senior Technical Editor 

Oarcias Circuit Cellar: Gregg Williams and Technical Editor Richard Grehan examine a preliminary 

build an Intelligent Serial eprom version of the machine and consider its potential A complete review of the 

*?S™eCto*ia 103 Apple " GS Wi " foll ° W in a subse Q uent issue - 

lJ A Back in February 1985, Steve Ciarcia's Circuit Cellar project was a serial 

programming Project: EPROM programmer. Steve intended it as an experimenter's project that would 

Safe Storage Allocation . , r . c ^ t ,. Ll \, , ,. , , 

by Jonathan Amsterdam 122 satisf y a certain core of supporters yet enlighten the larger audience of readers 

about EPROM programming in general. This proved to a miscalculation. It 
by David d Thiel 139 was muc ^ better received than Steve thought it would be. Unfortunately he 

hadn't arranged to have it made into a printed circuit board. To make up for 
a Useful Property of 2" ^is. Steve returns this month with an improved serial EPROM programmer 

by Robert c. Arp jr. 145 that includes an on-board CPU and intelligent firmware. 

^^^^^^^^^^^^^^^^^^^ All useful programs need storage to go about their business, and Jonathan 

Amsterdam's "Safe Storage Allocation" explains how to avoid the dangers 
involved in allocating memory. This Programming Project focuses on four 
storage allocators that are available to readers in a variety of formats. 

In our ongoing coverage of 68000 machines, this month we look at the Com- 
modore Amiga. David D. Thiel's "Sound and the Amiga" explores the Amiga's 
enhanced, hardware-assisted, digital-to-analog converter approach to sound. 
Within processor and RAM limitations, says the author, you can do whatever 
musical flights of fancy you are clever enough to conceive. 

Finally, in his October Programming Insight, "A Useful Property of 2 n ," Robert 
C. Arp Jr. discusses how he solved the problem of a shortage of user flags 
by exploiting a property of summations of 2". 

OCTOBER 1986 -BYTE 83 


Apple II GS 

The 65C816 processor 
brings the Apple II 
into the \6~bit world. 

Editor's note: The following is a BYTE prod- 
uct preview. It is not a review. We provide 
an advanced look at this new product because 
we feel it is significant. A complete review will 
follow in a subsequent issue. 

The Apple II has a curious 
history. It was originally de- 
signed by Steve Wozniak 
and Alan Baum in 1 976 as 
a homebrew computer that squeezed 
maximum features out of minimum 
parts. Over the years, it evolved into 
the Apple II+, then the He, then the 
He. Once, Apple tried to kill it off with 
the Apple III (which itself died) and, 
later, with the Macintosh and the He. 
Despite corporate attempts to ignore 
it and retard its evolution, the Apple 
II continued to bring in the major part 
of Apple's income. Finally, in May 
1 984 Apple acknowledged the reali- 
ty of the Apple II 's success when it 
titled its day-long introduction of the 
Apple He "Apple II Forever." (Despite 
Apple's wishes to the contrary, the He 
continued to sell better than the non- 
expandable He— people wanted their 
expansion slots.) By mid-1985, 
though, the Apple II began to lose its 
sales appeal and Apple engineers 
were already working on a product 
called, at various times. Phoenix. Col- 
umbia, Cortland, and Granny Smith: 
the Apple II GS. 

The Apple II GS looks back to the 
past and forward to the future, and 

the machine might best be summa- 
rized by saying that it takes a giant 
step in both directions. Its new styl- 
ing and modularity (see photo I ) fore- 
shadows a day when Macintosh and 
Apple II products will use the same 
keyboard and 3 /2-inch disk drives. 

System Description 

Here are the most important features 
of the Apple II GS: 

• Apple II compatibility: The Apple 
II GS will run most Apple II software 
and expansion cards. It can run at nor- 
mal Apple II speed or at a higher rate 
that makes most software run two to 
three times faster. | Editor's note: In this 
article. "Apple II" refers to the traditional 
Apple II computer as defined by the Apple 
II, II+, We, and lie] The Apple II GS com- 
posite video signal has been cor- 
rected so that it will be recorded cor- 
rectly by a videotape recorder. Apple 
He owners can upgrade to complete 
II GS compatibility by replacing the 
motherboard and back/bottom plate 
with a II GS retrofit kit. 

• A 16-bit, 6502-compatible pro- 
cessor: With a 16-bit address bus and 
8 "bank address" lines, the Western 
Design Center's W65C816 can ad- 
dress 2 56 banks of 64K bytes each, 
for a total of 1 6 megabytes. It can also 
go into a 6502 mode, where it 
emulates the 65C02A used in the 
Apple He and He. The processor's ac- 
cumulator, stack pointer, and all its 
registers are 16 bits wide, and its in- 
struction set includes 1 1 new address- 
ing modes. 

• Greatly expanded memory capaci- 
ty: The machine's architecture 
reserves space for 8 megabytes of 
user RAM and I megabyte of system 

ROM. It comes with 2 56K bytes of 
RAM, 128K bytes of system ROM, and 
64K bytes of dedicated sound-wave- 
form memory, but you will have to 
wait for new programs to use most of 
the memory above the first 128K 
bytes. Apple currently has plans for 
1- and 4-megabyte expansion cards, 
although an 8-megabyte card is 

• New graphics capabilities: The 
Apple II GS adds two "super hi-res" 
graphics modes: 200 by 320 pixels 
with a 16-color palette and 200 by 
640 pixels with a 4-color palette; the 
colors come from a color set of 4096. 
The machine can use up to 16 pal- 
ettes per screen and change palettes 
and resolution on a line-by-line basis. 
Programmers can use two experi- 
mental modes: a 640- by 200-pixel, 
16-color (with restrictions) palette 
mode, and a high-speed "fill mode" 
variation of the 200 by 320, 16-color 

• New sound capabilities: The 32- 
voice Ensoniq Digital Oscillator Chip 
(DOC), used in the Ensoniq Mirage 
sampled-sound music synthesizer, 
and system firmware can drive the 

Gregg Williams is a senior technical editor at 
BYTE: he bought his first Apple 11+ in 1980 
and now owns an Apple We. Richard Grehan, 
who has owned an Apple 11+ since 1985, 
is a technical editor at BYTE. They can be 
reached at One Phoenix Mill lane, Peter- 
borough, NH 03458. 

84 BYTE • OCTOBER 1986 

by Gregg Williams and Richard Grehan 

Deluxe Paint drawing program. (Photo by Electronic Arts.) 

Writer's Choice Elite word processor. (Photo by Activision Inc.] 

Photo I: The Apple II GS. 


OCTOBER 1986 .BYTE 85 


chip to produce up to 15 musical "in- 

• Mouse, keyboard, and disks: A 
one-button mouse and a detachable 
keyboard with keypad are standard 
equipment. The Apple II GS does not 
have an internal disk drive, but you 
can daisy-chain up to two 800K-byte 
3!/2-inch drives and two 140K-byte 
5^-inch drives to the disk drive port 
on the rear panel. The system soft- 
ware will come on 3 ! /2-inch disks, 
which silently but forcefully indicates 
Apple's intent to phase out the 
5^-inch floppy disk. 

• The Toolbox: Application programs 
can use built-in code (some in ROM, 
some in RAM) to provide a mouse- 
driven desktop environment and 
orderly use of system resources. 

• The Finder: Finder software, sup- 
plied with the basic system, allows 
users to interact with disks and files 
using windows, icons, and a mouse- 
driven cursor (as popularized by the 
Apple Macintosh). 

• Desk accessories: The Apple II GS 
makes available Macintosh-like desk 
accessories: some are available from 
all programs, and others work only 
with programs specifically designed 
for the Apple II GS. The Control Panel, 
accessible from any program, allows 
the user to change the date, slot as- 
signments, operating speed, and 
similar parameters. 

• New languages and tools: For the 
software developer, Apple will offer 
a 6502/65C02/65816 assembler and 
versions of C and Pascal; the three 
languages share a standard editor and 
linker and allow object code modules 
from any source to be used together. 
For the hobbyist, Apple has extended 
the Apple He monitor to work in the 
Apple II GS 16-bit environment and 
has added new functions to it. 

• No enhanced, built-in language: 
Like the Macintosh (and unlike most 
other computers), the Apple II GS 
contains no built-in language (such as 
Microsoft BASIC) that interacts with 
the machine s new features. Applesoft 
BASIC is available in system ROM, but 
it has no way of directly interacting 
with the new Apple II GS features. 
•A new 16-bit operating system: 
ProDOS 16 extends Apple's ProDOS 
(which runs on the Apple II+, He, and 

He) to be the standard Apple II GS 
operating system; it runs on the 65816 
in native 16-bit mode, is functionally 
similar to the 8-bit ProDOS, and 
shares an identical file structure with 
ProDOS. Apple has also made slight 
modifications to the 6502-based Pro- 
DOS so that it will run on the Apple 
II GS's Apple II emulation mode; this 
operating system is named ProDOS 8. 

Two Machines 

The case of an Apple II GS contains, 
in a sense, two machines: the full 
Apple II GS, with all its memory and 
new features, and a 128K Apple He. 
Much of this article will explain the 
design elements that allow these two 
'machines" to exist together. You may 
want to refer to figure I , which is a 
block diagram of the Apple II GS. 

The Mega II 

The Mega II is a custom CMOS chip 
containing about 3000 gates and a 
2K-byte by 8 ROM (for the character 
generator). It replaces the following 
chips from the Apple He and He: char- 
acter generator ROMs for eight lan- 
guages, several TTL chips that per- 
form logic functions, and the MMU 
(memory management unit), IOU (in- 
put/output unit), TMG (timing genera- 
tor), and GLU (general logic unit) 
custom chips. 

In previous Apple II designs, the re- 
freshing of memory was tied directly 
to the Apple II video mode. The Mega 
II includes an 8-bit counter for refresh- 
ing the 128K bytes of (slow) memory 
associated with the Apple Ile/IIc 
model; it does five cycles of RAM 
refresh during the horizontal retrace 
of each video scan line and refreshes 
the 128K bytes of memory in 3.2 5 
milliseconds. By taking care of RAM 
refresh, the Mega II chip opens the 
Apple II design to new video modes 
that were impossible before. 

Speeding Up the II GS 

The Apple II GS designers had many 
conflicting goals. They wanted to 
make a machine that runs as much 
existing Apple II software as possible 
and to make it run software (both old 
and new) faster than on an Apple II. 
In order to accomplish this, they 
changed the memory map and em- 

ployed a technique called shadowing. 

Figure 2 shows the Apple 11 GS 
memory map. Remember that many 
memory areas in the Apple II are 
special; the memory-mapped "soft 
switches" in the C000-C0FF hexadec- 
imal region control many key func- 
tions, interaction with the peripheral 
cards occurs through locations in the 
CI00-CFFF hexadecimal region, and 
several areas of memory determine 
what graphics and/or text are shown 
on the video display. Many of these 
areas are limited by the original Apple 
II design to being accessed at I MHz. 
A straightforward expansion of the 
Apple II design would put the slow 
memory in banks 00 and 01, their 
location in the Apple He and lie. (A 
bank is defined as the 64K-byte ad- 
dress space from hexadecimal loca- 
tion XX0000 to XXFFFF Actually, the 
two 64K-byte banks of memory in the 
Apple He and lie are called simply the 
main and auxiliary banks, but you can 
imagine the bank select as the 17th 
bit of the corresponding Apple II GS 
memory address.) 

Instead, the designers put the slow 
memory (with the corresponding con- 
trol circuitry) in banks E0 and El hexa- 
decimal and assigned fast memory to 
banks 00 through 7F This gives you 
8 megabytes of linearly addressed mem- 
ory (something new to Apple II pro- 
grammers), and all existing Apple II 
programs (which must run in banks 00 
and 01) will run in fast not slow, mem- 
ory. (The 65C816 runs at 2.8 MHz, but 
the overhead of dynamic memory 
refreshing slows the average speed 
of RAM memory access to about 
2.5 MHz; ROMs are accessed at the 
full 2.8-MHz speed.) 

This scheme gives us speed but not 
compatibility. Programs that do I/O 
using the peripheral slots and video 
display write to addresses in banks 00 
and 01, but the hardware they need 
to interact with is tied to the slow 
memory in banks E0 and EI hexadec- 
imal. How can we get this scheme to 

The answer is shadowing. The 
Apple II GS engineers designed the 
Fast Processor Interface (FP!) custom 
chip to monitor any attempt to write 
to the area to be shadowed (in bank 


86 BYTE • OCTOBER 1986 


c/i-lOl- r-v 

W-IOH vo 

w_ioi- w 

CO-IOI- •* 





5< * 

— IE O 
> O O 



=3 5 



* z o 

o- z 

< 5 O 

-» ' I 

o m 0- 

Q W O 





m i 

p Q 

Figure 1: A block diagram of the Apple II GS. 

OCTOBER 1986 • BYTE 87 


00 or 01). then slow itself down to 

1 MHz and write to the location and 
its equivalent in bank E0 or El hexa- 
decimal. In many locations (video 
display memory, for example) read 
operations from the same location 

have no timing constraints and can 
proceed at the higher 2.5-MHz speed. 
Because other locations (like the ones 
associated with peripheral card I/O) 
must always be written to and read 
from at I MHz, the speedup of Apple 

Fast 2.5-MHz RAM 

00 01 


Language card area 
I/O card space 

High-resolution screen 2 
High-resolution screen 1 

Text and 
low-resolution screens 








tXjjcai ioiui i 


video buffer 

Slow 1-MHz RAM 

E0 E1 

- Super 








Figure 2: The Apple II GS memory map. Shaded areas indicate shadowed 
memory, where any write operation is duplicated to the corresponding location in 
banks E0 and El hexadecimal The super hi-res screen does not need shadowing, 
but it is included as a convenience to Applesoft and 6502 programmers, who 
can only work with banks 00 and 0I. Memory areas are not drawn to scale. 

II software depends on the memory 
locations the software uses. 

Note that this scheme gets two 
things done. First, it allows existing 
Apple II programs to write to bank 00 
and 01 locations at the correct speed 
and have the associated hardware 
perform the expected interaction. 
Second, it allows programs to execute 
in the fast 2.5-MHz memory, slowing 
down only at specific times. 

By default, the Apple II GS shadows 
text page 1 in both banks, hi-res pages 
I and 2 in bank 00, a 32K-byte area 
(2000-9FFF hexadecimal) in bank 01 
used for the new super hi-res graphics 
modes, and the 4K-byte section of 
memory at CXXX hexadecimal in 
bank 00. However, programs can ac- 
cess a "shadow register" that can 
disable shadowing in individual areas. 
This speeds up program execution 
and allows the program to use the un- 
shadowed areas and their E0/EI 
(hexadecimal) counterparts for other 

(The bit that shadows the CXXX 
|hexadecimal| area also uses the ac- 
tual memory in locations C000-CFFF 
hexadecimal to hold the 4K-byte alter- 
nate language-card areas for both 
banks. When this shadowing is turned 
off, the language cards of banks 00 
and 01 are no longer present, and the 
65C816 sees a completely linear ad- 
dress space in banks 00 and 01. (How- 
ever, all Apple system software re- 
quires the CXXX shadowing to be en- 
abled.! The FPI chip controls shadow- 
ing and. in general, the intercepting 
and translating of all the address re- 
quests from the 65C816.) 

Slots and Ports 

The II GS's expansion slots are iden- 
tical in function and configuration to 
the Apple He's slots with the excep- 
tion of one added signal, /M2SEL, 
which appears at pin 39, replacing the 
6502 SYNC signal. /M2SEL is an 
active-low signal that indicates when 
the II GS is executing at slow speed 
(I MHz) and the address lines A0-A 1 5 
are valid (i.e.. the II GS is talking to the 
slow RAM or I/O). In some ways, this 
signal is redundant with the old IOSEL 
and DEVSEL signals in the II+/IIe, and 
boards that use these signals should 
have no problem operating in an 

88 B YTE • OCTOBER 1986 


Apple II GS. Control-signal generation 
and clock-signal buffering on the ports 
are handled by the SlotMaker custom 

Associated with each \/0 expansion 
slot are built-in circuits and firmware 
that form an "invisible" port. The 
default settings for the seven slots are 

Slot I serial printer port 
Slot 2 serial modem port 
Slot 3 80-column display 
Slot 4 mouse 
Slot 5 3 /2-inch disk drives 
Slot 6 5!4-inch disk drives 
Slot 7 Apptefelk 

It is as though you had an Apple He 
with boards for all the above devices 
already plugged in. Unfortunately this 
wealth of built-in interfaces carries 
with it some restrictions, the most 
severe being that if you have an ex- 
pansion board you want to run in your 
II GS, you must give up the built-in 
port of whatever slot you plug the 
board into. (You use the Control Panel 
to choose whether a slot is using its 
associated default port or a plug-in 
board; this information is retained in 
battery-backup RAM.) The serial ports 
of the Apple II GS appear on the rear 
of the cabinet in the form of a pair of 
8-pin mini-DIN connectors. They are 
pin- and signal-compatible with the 
serial connectors on the back of the 
Macintosh Plus-in fact, the USART in 
the II GS is the same as the Macin- 
tosh's: a Zilog 8530 serial communi- 
cations chip. If you access the serial 
ports through the firmware, they "ap- 
pear" identical to the Apple Super 
Serial Card (SSC), even though the 
SSC uses a different UART a 65 51. 
This has dire consequences for soft- 
ware that talks directly to the serial- 
port hardware on Apple lis equipped 
with SSCs. Such software— and this in- 
cludes practically all of the commer- 
cial communication packages— will 
certainly fail on the II GS. 

Programs that bypassed the SSCs 
firmware did so to break the speed 
limitations of the firmware's non- 
interrupt-driven, unbuffered I/O rou- 
tines, which were virtually useless for 
dependable communications at 1200 
baud. The 11 GS's serial port firmware 
solves these troubles: It is interrupt- 
driven, and each serial port has input 

and output buffers that default to 2K 
bytes each but can be set to up to 
64K bytes each. 

The Apple II GS's built-in disk port 
is a 19-pin miniature D-type connec- 
tor in the middle rear of the machine. 
You can daisy-chain up to four drives, 
up to two 3 /2-inch drives followed by 
up to two 5!4-inch drives. Owners of 
Apple lis who might want to use their 
drives on the II GS can simply plug 
their Disk II controller into slot 5 or 
6 and override the default setting for 
that slot. 

Memory Expansion Slot 

The Apple II GS motherboard has a 
special memory-expansion slot de- 
signed for a card with up to 8 mega- 
bytes of RAM and 896K bytes of ROM 
(bringing the system's total ROM to I 
megabyte). The RAM maps into banks 
02 to 7 F hexadecimal, and the ROM 
maps into banks F0 to FD hexadeci- 
mal. It is easiest to design 1- and 
4-megabyte RAM cards (using 256K- 
bit by I chips and I megabit by I 
chips, respectively),' but the II GS 
engineers said that, with a few extra 
chips for interfacing, you could design 
an 8-megabyte RAM card; however, 
since the machine is not designed to 
hold user RAM above bank 7F hexa- 
decimal, an 8-megabyte RAM card 
would be unable to access the top 
two banks (128K bytes) of its memory. 


SmartPort is a set of assembly lan- 
guage routines (held in firmware) for 
accessing block and (as yet un- 
designed) character I/O devices on the 
Apple II GS. The SmartPort routines 
provide support for 3 /2-inch disk 
drives, a RAM memory disk (called 
the /RAM device), or a ROM memory 
disk (5 /2-inch drives, though part of 
the daisy chain, are controlled by the 
Disk II firmware, and future hard disks 
can be designed to respond to Smart- 
Port routines without being part of 
the daisy chain). 

SmartPort handles I/O in blocks of 
512 bytes; since the routines permit 
up to a 4-byte block number, Smart- 
Port can manage devices with storage 
capacities up to 2,199,023,255,552 
bytes. SmartPort's basic functions in- 
clude get device status, reset a device, 

format a device, read a block from a 
device, write a block, and send con- 
trol information. 

Any I/O expansion card that ad- 
heres to SmartPort conventions will 
have signature bytes at specific loca- 
tions in its on-board ROM. The II GS's 
firmware will hunt for and recognize 
these at boot-up time, just as ProDOS 
currently does on the Apple II. 

As its name implies, the ROM disk 
is the equivalent of a RAM disk 
emulator in nonvolatile read-only 
memory. This could come in handy 
for keeping frequently used programs 
like assemblers, compilers, or the like 
on hand for rapid execution. The II GS 
memory space has eight 64K-byte 
banks set aside for ROM disk expan- 
sion, located just beneath the firm- 
ware ROM in banks F0-F7 hexadeci- 

Desk Accessories and the 
Control Panel 

You can think of a desk accessory as 
a mini-application that can be run 
from within another program. Macin- 
tosh owners are already familiar with 
desk accessories— those utility pro- 
grams from the menu bar that appear 
when you click on the apple symbol. 
The II GS supports two types of desk 
accessories (with a tip of the hat, 
perhaps, to Coca-Cola): classic desk 
accessories (CDA) and new desk ac- 
cessories (NDA). A classic desk acces- 
sory can be activated only by a key- 
press. Classic desk accessories can be 
run with older Apple II programs 
(such as Appleworks) and new II GS 
programs. A new desk accessory runs 
in the II GS's desktop environment 
and is available from a pull-down 
menu similar to the Macintosh's desk- 
accessory menu. 

One classic desk accessory is built 
into the II GS: the Control Panel. You 
call up the Control Panel by simulta- 
neously pressing open-apple-Control- 
Escape, which presents you with a 
menu containing the following system 
configuration options: 

• Display selects color or mono- 
chrome monitor, display width, and 
colors for text, background, and 


OCTOBER 1986 • BYTE 89 


• Sound displays two "slider switches" 
used to adjust the II GS speaker's 
pitch and volume. 

• Speed selects 1.0-MHz or 2.8-MHz 
("normal" or "fast") operation of the 
65C816 CPU. 

•Clock sets the II GS system clock 
time and date. 

• Options alters parameters of the II 
GS's keyboard: keyboard layout, key- 
board buffering on or off, repeat 
speed and delay, and others. 

• Slots lets you indicate for each of 
the II GS's seven I/O slots whether the 
slot is running an "invisible" port or 
a plug-in board. 

Other selections from the Control 
Panel let you set parameters for the 
serial ports and enable a RAM disk. 
You can use the Control Panel from 
within any program; we even used it 
in the middle of a disk access with no 
adverse effects. 

Video Modes and the VGC 

Because the Apple II GS emulates the 
Apple II, it contains all the text and 
graphics modes of the Apple II: 24 by 

40 text, 24 by 80 text, 48 by 40 low- 
resolution and 48 by 80 medium- 
resolution graphics with 16 pre- 
defined colors, 192 by 140 hi-res 
graphics with 6 predefined colors, and 
192 by 140 double hi-res graphics 
with 16 predefined colors and 192 by 
560 monochrome graphics. (Apple 
claims double the above numbers for 
hi-res resolutions in the horizontal 
directions, but the numbers here 
more accurately reflect the true 
nature of hi-res graphics because of 
the color limitations between adjacent 

As stated earlier, removing the 
banks E0 and EI (hexadecimal) 
dynamic RAM refreshing from the 
video display circuitry makes new 
video modes possible. A new custom 
chip, the Video Graphics Controller 
(VGC), implements both old and new 
video modes as well as unrelated sup- 
port functions for the built-in clock 
chip, the disk drives, the interrupt 
system, and built-in chip and board 
testing routines. The VGC enhances 
current text modes by allowing the 
user to choose from the Control Panel 

Photo 2: Apple super hi-res graphics (200 by 320), fill mode, and line- 
addressable mode switching. The top {green) portion of this photo is in fill mode, 
while the bottom is not. Note that the colored outline of the cube determines 
what color a given face will be painted in fill mode. Note also the green line 
running down the left side the screen: this line makes the background color of the 
screen green. \Courtesy of Apple Computer] 

the color (or gray scale value) of the 
text, its background, and the border 
outside the active text/graphics area. 
These modes are available only when 
using an RGB color or monochrome 

Super Hi-Res Graphics 

The new modes are called "super hi- 
res." Actually, there are three modes 
that can be used in four ways; two of 
them are pretty straightforward and 
useful, while the other two are more 

Associated with the super hi-res 
modes is a 32K-byte chunk of mem- 
ory in bank El ranging from ad- 
dresses 2000 to 9FFF (assume that 
the addresses in this section are hexa- 
decimal and the quantities are dec- 
imal). The pixel map occupies the 
range from 2000 to 9CFF. an impor- 
tant set of pointers occupies locations 
9D00 through 9DFE and color palette 
information fills the remainder of the 
area, from 9E00 to 9FFF (To get into 
these modes, write CI hexadecimal to 
location C029, and write 41 hexadec- 
imal into it to restore the Apple II 

The pixel map contains exactly 
32,000 bytes arranged as 200 rows of 
160 bytes each. Apple II program- 
mers, who have always struggled with 
a convoluted pixel-to-memory map- 
ping scheme, will be surprised by the 
fact that the super hi-res modes are 
completely linear, with a row-first 
stream of pixels corresponding to an 
unbroken, increasing progression of 
memory addresses. In other words, 
the first pixel on the first line uses the 
high bits of location 2000, while the 
same pixel in the second line uses 
location 20A0 (160 bytes later), and 
so on. 

There are two super hi-res modes. 
Both have 200 lines per screen, but 
one has 320 pixels per line (see photo 
2), while the other has 640 pixels per 
line. Since each line is represented by 
160 bytes, each pixel has 4 bits of 
memory in the 320 mode and 2 bits 
in the 640 mode (see figure 3). This 
scheme gives you 1 6 colors in the 200 
by 320 mode and 4 colors in the 200 
by 640 mode, with no restrictions on 
the color of adjacent pixels (a prob- 


90 BYTE • OCTOBER 1986 


were a few hackers, then came (he college students, next the major software 
houses, and now the rest of the programming world. Programmers everywhere 
are infected with the desire for SPEED, POWER, and PORTABILITY 

Its time to face the inevitable. You Ye going to catch the fever too! When you 
do, give us a call. We've got the best cure — an illustrated guide to the C 
language, plus a complete program development system. Everything you need 
to master the C programming language ... all at a price that's less than the cost 
of a book! 

But don't let this price fool you. Our system is powerful; it compiles twice as 
fast as the others, is completely standard, and its very easy to use. Most C 
compilers are designed for wizards. We have designed ours for you! 

Split Screen Text Editor 

$29 ! 

(Nut Copy Protected!) 
Works on allMSDOS) 
PCDOS and O'tM 7.H0 

an Incredible 



Our high powered 
editor is great for edit- 
ing high level lan- 
guages. It works just 
like Micropro s 
Wordstar® but 
macros allow you to 
create your own cus- 
tom editor, and the 
split-screen feature lets 
you edit two files at 
the same time. 

The MSDOS/PCDOS version 
is loaded with special features: 

• Execute any DOS command or RUN other 
programs from the editor. 

• Quickly edit tiles as large as 300,000 

• Compile MIX C programs directly from 
memory. The editor automatically positions 
the cursor to the lirst error in your 

that supports all data types 
and the latest features like bit fields, enumerations, structure assignment, 
and passing/returning structures. 

that loads separately compiled files, searches libraries, and 
builds an executable program. 

(including the 
standard C functions and the computer specific functions that provide direct 
access to the operating system and BIOS'). 

your programs for minimal space or 
maximum speed. 

Operators are standing by . . . Please use this Number for ORDERS ONLY! 



For Technical Support Please call 1-214-783-6001 

MIX Software, Inc. / 2116 E. Arapaho / Suite 363 / Richardson, Texas 75081 

Or contact our Worldwide Distributors direct in: 

Canada: Saraguay Software 1-416-923-1500 Switzerland: DMB Communication CH-1-825-53-29 
Australia: Techno w 047-586924 France: Info/Tech 1-43-44-06-48 


Please check method of payment: 

□ CheckD Money OrderD MasterCard/VISA 

Your Card #: 


Shipping Charges: (No charge for ASM 

In the U.S.A.: Add $5.00 per Order. 
In CANADA: Add $10.00 per Order. 
OVERSEAS: Add $10.00 per Text Editor. 
Add $20.00 per C Compiler. Add $30.00 
for combined C Compiler and Text Editor. 
Operating System: (Check one) " 

Specify Your Computer Name _ 
Specify Disk Format 



an Incredible 
Value AT ONLY 

Call assembly language routines 
from your C programs. The ASM utility 
works with Microsoft s jMASM or M80 assem 
bier. Macros make it easy! Works just as if 
you were calling a C function, and you can 
even call C functions from assembly lan- 
guage. Lots of useful assembly language 
functions are included as examples. 

Inquiry 14 


Spl it-Screen Text 

^rr^. C Compiler 

Quantity PRICE 

$29.95 $_ 

$39-95 $_ 


Telephone A/C ( ) . 




$54.95 $_ 
$10.00 $_ 

C and Text Editor 

ASM Utility 

Texas Residents Add 6.125% 
Sales TAX 

Shipping Charges (See at Right) 


State _ 

Country _ 


p^^f 2 116 East Arapaho 

J ^^V Suite 363 
Software Richardson, Texas, 75081 
Ask about our Volume Discounts! 
Call 1-214-783-6001 B 


lem that complicates the Apple II 
hi-res modes). 

With the old Apple II hi-res modes, 
the electronic characteristics of both 
the Apple II and its video display 
determined the colors that were avail- 
able; for example, the hi-res mode 
gave you the colors violet, blue, 
green, orange, black, and white. The 
Apple II GS, through the VGC chip, 
gives you more control over the 
colors in your graphic display. The 
super hi-res mode lets you choose 
your palette of 16 colors from a color 
set of 4096. 

But which of these 16 colors are 
used in the 640 by 200, 4-color 
mode? The answer is all of them, the 
details of which lead us to one of the 
experimental super hi-res modes. The 
two bits of a pixel in this mode can 
have four values, so they are used in 
this mode to choose from 4 colors in 
the 16-color palette. Which 4 colors? 
Apple II programmers will recognize 

the answer as yet another convoluted 
video mode in the Apple II tradition: 
The 4 colors available for a pixel de- 
pend on its position within a byte (see 
figure 3b). 

Palettes and Pointers 

Actually, the Apple II GS defines a 
512-byte area starting at location 
9E00 hexadecimal; this area contains 
16 color palettes of 32 bytes each, 
numbered from to F hexadecimal. 
Each color in a palette is defined in 
2 bytes, using 4 bits each to describe 
the red, green, and blue components 
of the color. The first byte contains the 
values for green (bits 7-4) and blue 
(bits 3-0); the second byte contains 
the red value (bits 3-0), with the re- 
maining bits set to zeros. 

Why are there 16 palettes? Because 
each scan line can use any of them 
in any order. This brings the total 
number of colors that can appear on- 
screen to 16 x 16 = 2 56 colors. Ex- 


Pixel data byte format, 320 by 200 mode 

7 6 5 4 3 2 10 

-► Selects 1 of 16 colors 
for 2nd pixel 

->• Selects 1 of 16 colors 
for 1st pixel 


Pixel data byte format, 640 by 200 mode 

7 6 5 4 3 2 10 

->- Selects from colors 4-7 
for 4th pixel 

->• Selects from colors 0-3 
for 3rd pixel 

-► Selects from colors C-F 
for 2nd pixel (hexadecimal) 

-► Selects from colors 8-B 
for 1st pixel (hexadecimal) 

Figure 3: (a) Pixel decoding in the 320 by 200 and (b) 640 by 200 super 
hi-res modes. 

pect to see some uncharacteristic 
graphics as soon as programmers 
learn their way around the machine. 

The final surprise of the super hi-res 
graphics modes comes from the 
pointer area. The pointer byte at loca- 
tion 9D00 hexadecimal corresponds 
to the top line of the video display 
with each successive scan line getting 

the next byte: 9D01, 9D02 etc. 

This byte is read and interpreted dur- 
ing the horizontal retrace of the 
previous video line. 

Within each pointer byte, bits 3 
through determine which of the 16 
color palettes is to be used. Bit 4 is 
not used and should be set to 0. Bit 
6 does nothing if set to 0. If it and an 
interrupt register at address C023 
hexadecimal are both set to I, the 
VGC generates an interrupt at the 
beginning of the line; this will allow 
the advanced programmer to wring 
extra performance out of the super hi- 
res screen by altering palette values 
(or making other useful changes) "on 
the fly"— that is, while the machine is 
drawing the video display. Bit 7 deter- 
mines the resolution: for 320 pixels, 
I for 640. 

This leaves bit 5, which does 
nothing if set to but which activates 
the final, experimental super hi-res 
mode, called fill mode (see photo 2). In 
fill mode (which works in 200 by 320 
resolution only), you have access to 
1 5 colors (numbers I through F. hexa- 
decimal). A pixel value of means 
that its color is the same as the last 
nonzero pixel to the left. In other 
words, pixels with the values 


would appear as colors 


and you could change the large area 
painted with color 2 to, say, color 5 
by changing one pixel (the fifth one) 
from a 2 to a 5. (Note that the first 
pixel in a line must always be non- 
zero.) This mode will be good for 
drawing large areas and changing 
their colors very quickly. 


The heart of the II GS's sound system 
is the Digital Oscillator Chip manu- 


92 BYTE • OCTOBER 1986 

12 MHz SPEED . . . 

. . . plus A MEGABYTE FOR DOS! 



Turn your PC or XT into the machine it should have 
been! The 12 MHz Number Smasher/ECM is the fastest 
accelerator on the market It is also the most powerful, provid- 
ing a true megabyte for DOS! 

To break the 640K DOS barrier MicroWay designed a 
Memory Management Unit (MMU) that is tailored to DOS 
plus a 2000 byte resident driver- MegaDOS™. MicroWay 
calls this breakthrough Extended Conventional Memory. 
When you type CHKDSK with the board installed, your sys- 
tem will report 1,036,288 bytes total memory and 1,010,016 
bytes free! Any conventional DOS program can utilize a full 
megabyte for data or code without changing a byte. 

Downloading a mainframe application? ECM memory 
runs with any program that uses DOS for screen services 
including RM and MS FORTRAN and MS and LATTICE C! 
This means you have an additional 384 K available for over- 
sized applications. Programs which write directly to the 
screen require a simple patch to adhere to the new standard. 
MicroWay has already developed patches for the Lotus, 
WORDSTAR and AUTOCAD screen drivers. Release 1 A of 
1-2-3 jumps from 535,516 to 916,444 bytes available and 
runs faster than Release 2 for most worksheets. 



Number Smasher/ECM is 100% compatible with all 
hardwareand software including EMS and EGAboards.The 
compatibility is a result of control: its speed is switch, key- 
board or software selectable from 4.77 MHz to 12.0 MHz. 
Applications which have not been upgraded to ECM can still 
be run by setting DOS to 640K or 704 K and using the 
memory above DOS for I/O enhancers. 

Number Smasher/ECM runs floating point bound pro- 
grams faster than an AT or any other 80286 based machine. 
In fact, Number Smasher's 1 2 MHz 8087 runs a factor of 
three faster than the standard 80287 on the AT, delivering up 
to 125 kflops. Software is included for RAM Disk, print 
spooler, and disk caching, which speeds up floppy and hard 
disks by a factor of 2 to 1 0! 

Number Smasher/ECM is the most cost effective pro- 
ductivity tool you can buy. The base board which runs at 
9.54 MHz comes with 51 2 K and costs only $599! The com- 
plete system which includes a motherboard accelerator, one 
megabyte of memory and a 1 2 M Hz 8087 is just $1 1 99. Call 
today to discuss your particular configuration. Remember: 
"The advantage of buying from MicroWay is outstanding per- 
sonal service." (PC Magazine, 6/1 0/86 - p. 1 62) 

The World Leader in 8087 Support 

Inquiry 202 

P.O. Box 79, Kingston, Mass. 02364 USA (617) 746-7341 
Tempo House, London, U.K. call 01-223-7662 
Number Smasher, ECM and MegaDOS are trademarks of MicroWay, Inc. MicroWay is a registered trademark of MicroWay, Inc. 

OCTOBER 1986 • BYTE 93 


factured by Ensoniq and used in the 
Mirage digital synthesizer. The DOC 
is attached to its own personal bank 
of 64K memory into which programs 
store wave tables that the DOC uses 
to generate sound. This memory is ac- 
cessible only through special registers 
in the Sound General Logic Unit, a 
custom chip that acts as an interface 
between the DOC and its memory 
and thus allows sound generation to 
proceed independent of other pro- 
cessing in the Apple II GS. Additional- 
ly, registers within the Sound GLU 
chip regulate the gain of the II GS's 
audio amplifier, providing control of 
the speaker's volume. 

The Ensoniq DOC contains 32 oscil- 
lators that the II GS firmware operates 
in pairs to generate a tone. Since one 
of the oscillators is used by the system 
to generate a time-slice interrupt for 
the DOC, the Apple II GS can produce 
up to 15 independent tones simulta- 

A wave table is a series of bytes in 
the DOCs memory such that each 
byte represents the instantaneous 
value of the amplitude of the sound's 
output waveform. An oscillator on the 
DOC will step through this table fetch- 
ing bytes and passing them to an on- 
chip digital-to-analog converter that 
produces the analog waveform that, 
after filtering, goes to the speaker. 
This technique allows generation of a 
theoretically limitless range of sounds, 
bounded only by the amount of mem- 
ory available. The limit of 64K 
dedicated memory is no impediment, 
since the II GS allows you to fill one 
portion of a wave table while the DOC 
is fetching information out of another. 

The II GS passes the unamplified 
monophonic signal of the sound sys- 
tem's output to a mini stereo phone 
jack on the back panel of the ma- 
chine. This output is capable of driv- 
ing a pair of Walkman-style head- 
phones or, with the proper adapter 
cable, the input of a stereo amplifier. 
The designers of the II GS have also 
provided a connector on the mother- 
board that gives direct access to 
several useful DOC signals, including 
an unfiltered audio output, channel 
selection logic signals (can be used to 
implement eight independent audio 
channels), and an input to the DOCs 

analog-to-digital converter (for a 
sound sampler/digitizer). 

The Apple II GS Toolbox 

In the past, the Apple II could be 
almost completely described by its 
hardware features. The Apple II GS 
ends this tradition with its inclusion 
of significant amounts of system soft- 
ware in both ROM and RAM meant 
to be available to all programs. It is 
not accidental that these routines are 
similar in name and function to those 
in the Macintosh computer. The Mac 
toolbox is an elegant, powerful system 
proven to work and improved by two 
years of intensive use. 

The Apple II GS toolbox imple- 
ments the most useful Macintosh 
toolbox functions, though sometimes 
it does so in a different way; the Mem- 
ory Manager, for instance, works quite 
differently from its Macintosh 
counterpart because of the way the 
Apple II GS's memory is divided into 
64K-byte banks. However, the Apple 
II GS doesn't duplicate all of the 
Macintosh toolbox. 

The code in the Apple II GS toolbox 
is divided into tool sets, and the in- 
dividual routines are called tool calls. 
The tool sets that are in ROM are the 
Tool Locator, Memory Manager, 
SANE (Standard Apple Numerics En- 
vironment) Numerics, Desk Accessory 
Manager, Event Manager, Sound 
Manager, Integer Math Tools, Text 
Screen Tools, Scheduler, and Miscel- 
laneous Tools. QuickDraw II is divided 
between ROM and RAM. 

The remaining tool sets are stored 
on disk and loaded into RAM by the 
application that needs them. Once in 
memory, they are indistinguishable 
from tools stored in ROM. They are 
the Menu Manager, Window Man- 
ager, Control Manager, Line Editor, 
Dialog Manager, Scrap Manager, and 
Print Manager. 

Tool Set Structure 

The Apple II GS tool set has no fixed 
routine entry points and only four 
fixed addresses associated with its 
toolkits, yet any program can execute 
any toolbox routine in RAM or ROM, 
even if a routine is changed or moved 
to a different location after the pro- 
gram is written. Both tool sets and 

tool calls are numbered (starting with 
I), and any tool call can be executed 
by the following assembly language 

push inpl 
Idx #CalllD 
jsl Dispatch 

This pushes any input onto the stack, 
loads the 16-bit X register with a call 
ID constant that has the tool call 
number in the high byte and the tool 
set number in the low byte, and does 
a subroutine jump to a fixed entry 
point. A high-level language would 
compile a normal procedure call as a 
series of or more push instructions, 
followed by a jump to a different loca- 
tion that performs the above function 
while handling an extra 3-byte return 
value on the stack. The Apple II GS 
designers estimate that this type of 
call has an overhead of about 118 
microseconds. Parameters can be 
passed in several ways, based on the 
needs of the individual routine: on the 
stack, in a known block of memory, 
or in the A, X. and Y registers. 

To increase the usability and exten- 
sibility of the II GS, its designers pro- 
vided an identical but parallel struc- 
ture that allows programmers to build 
and use their own tool sets without 
"borrowing" tool set numbers that 
Apple may later use. The only dif- 
ference between the two is a different 
entry point, "UDispatch" instead of 

Toolkit Memory Usage 

Many tool calls need their own mem- 
ory—sometimes page zero locations 
to speed up their execution, some- 
times other memory for passing pa- 
rameters or sharing or storing data. 
The Apple II GS designers resolved 
the conflicting memory needs of 
many different tool calls by regulating 
memory usage as follows: The pro- 
gram using the tool sets will itself 
allocate page zero memory and tool 
sets will allocate the other memory 
they need by asking for it through the 
Memory Manager. They can then 
point to it with the WAPT (Work Area 
Pointer Ikble) entry reserved for that 
tool set, and their tool calls will always 


94 BYTE « OCTOBER 1986 

Inquiry 149 — ► 




MODEL 2000 20MHz 

MODEL 3500 35MHz 


At fast! Truly affordable test equipment with no compromise in design, and features 
you would expect to find only on oscilloscopes costing hundreds of dollars more! JDR 
Instruments presents two, new, high-performance models backed by a two year 
warranty and technical support which is only a phone call away. Perfect fdr the 
technician or advanced hobbyist, both models feature Dual Trace capability and a 
variety of operating and triggering modes, including CH-B Subtract and X-Y operation. 

MODEL 2000 has a 20 MHz I MHH MODEL 3500 features a 35 

bandwidth and 20 calibrated ^^Ftft^Bft^^H MHz bandwidth and exceptional 
sweeps ranging from .2s to .2fjs. W \&f&£&m \ 1mV/DIV sensitivity. Delayed 
A convenient built-in component lyj M sweep and variable holdoff allow 

tester provides additional ^^^ Bffif|WWW M stable viewing of complex 
diagnostic power. ggQg|gg| | waveforms. 

800-662-6279 ( ca) 


1224 South Bascom Avenue 
San Jose, California 95128 (408) 995-5430 



be able to access that memory in 
whatever way they wish. 

QuickDraw II 

QuickDraw II deserves mention 
because of its importance for desk- 
top-based Apple II GS software. It is 
a tool set, partly in ROM and partly 
in RAM, that provides a standard set 
of useful graphics routines for draw- 
ing window/menu-oriented screens. 
Wherever possible and appropriate, 
it attempts to work equivalently to a 
subset of Macintosh QuickDraw rou- 
tines. The pre-release documentation 
lists 146 QuickDraw II tool calls, of 
which 1 14 are listed as being the same 
as their Macintosh equivalents, 22 are 
listed as being similar, and 10 are en- 
tirely different or absent. The degree 
of consistency between QuickDraw 
and QuickDraw II will be very impor- 
tant to Macintosh software develop- 
ers attempting to convert their soft- 
ware to the Apple II GS. 


Apple has crowned ProDOS the oper- 
ating system for the Apple II series of 
computers, and the company will be 
guiding ProDOS along a carefully con- 
trolled development path that pro- 
ceeds as follows: 

• ProDOS 1.1.1 will continue to be 
supported for the Apple He and lie 
computers and many ProDOS 1.1.1 
programs will run on the II GS. 

• ProDOS 8, an altered version of Pro- 
DOS 1.1.1, will become the standard 
8-bit operating system for the Apple 
II. It will work on the He, He, and II GS. 

• ProDOS 16 will be the 16-bit oper- 
ating system used for Apple II GS soft- 
ware. Version 1.0, supplied with the 
machine at its introduction, is built on 
a ProDOS 16 framework but is imple- 
mented by a ProDOS 8 core sur- 
rounded by a shell handling ProDOS 
16-style calls. ProDOS 16 version 2.0 
will be released in the first quarter of 

The Finder 

We did not see the Finder working 
when we saw the Apple II GS, but its 
preliminary documentation describes 
it as "a combination Program Selec- 
tor/Disk Utility for managing docu- 

Extended Apple II GS 
Coverage on BIX 

BYTE magazine has a lead time of 
several months, but the lead time 
on BIX (BYTE Information Exchange) 
is measured by how fast we can type. 
By the time you read this, we will have 
active a special 'Apple II GS event" on 
BIX that will include further technical 
details, exact prices, BIX users giving 
their impressions of the machine as it 

comes out of the box, and more. Much 
of this information will be excerpted in 
the Best of BIX section of BYTE as 
soon as our lead time allows. 

For more details about the special 
Apple II GS coverage in BIX, log on to 
BIX. type join apple, and then join the 
first topic with 'GS' somewhere in its 

ments and directing traffic between 
the user and storage devices." It 
seems to be a pretty faithful imitation 
of the Macintosh desktop interface, 
with several exceptions. 

First, the "Special" menu has two 
new items— "Check Drives" and "For- 
mat." The first causes the Finder to 
update its knowledge of what disk is 
in each drive (remember that, in an 
Apple II system, you can change the 
floppy disk in a drive without the com- 
puter knowing what you've done). The 
second will eventually allow you to 
format a disk in either ProDOS, Apple 
Pascal, DOS 3.3, or Apple CP/M for- 
mats; the initial release, however, will 
only format disks for ProDOS. 

Second, the Finder will interact 
most fully with ProDOS disks and pro- 
grams. Since only the ProDOS oper- 
ating system has subdirectories, only 
ProDOS disks will have folders in their 
windows. When you exit a ProDOS 
program, it will return you to the 

Third, the Finder does not support 
custom file icons. Each icon will have 
a shape determined by its file type. 

Finally, the Finder will support rudi- 
mentary printing of text files. 

A future version of the Finder will 
probably add the Macintosh MFS 
(old) and HFS (hierarchical) disk for- 
mats, Apple Pascal 1.3, and Apple 
CP/M to the file types supported. 

Apple Desktop Bus 

The Apple Desktop Bus (ADB) is used 
for the generalized connection of the 
computer with up to 16 input devices 

daisy-chained to a single connector 
on the back panel; it currently sup- 
ports multiple keyboards (for educa- 
tional and other programs) and a 
mouse (ending the daisy chain), but 
the design can accommodate other 
kinds of devices. Devices are con- 
nected through a shielded 3-con- 
ductor cable using mini-DIN-4 con- 

The ADB is controlled by a dedi- 
cated 8-bit processor called the ADB 
microcontroller (abbreviated here as 
ADBM); in addition, the mouse and 
keyboard are controlled by custom 
microcontrollers that interact with the 
ADBM. The ADBM and the intelligent 
devices "talk" on a bus where only 
the ADBM can issue commands; the 
devices reply as appropriate with data 
or requests for service. 

In general, the ADBM handles low- 
level interaction with the keyboard, 
mouse, and other input devices, thus 
freeing the 65C816 processor from 
having to handle such tasks. 


Unlike any other Apple Computer 
product, the Apple II GS includes 
built-in Appl£l£lk code in RAM and 
ROM. Through the Control Panel, you 
can configure slot 7 as Appl^lk; the 
II GS then uses one of the two serial 
ports as its Appl^felk port. 

The II GS implements the bottom 
two (of seven) levels of App\£fo\k pro- 
tocol: Link Access Protocol (LAP) and 
Datagram Delivery Protocol (DDP). It 
also implements enough of the next 


96 BYTE • OCTOBER 1986 

Explore AI on your PC 

Smalltalk/V transforms your PC into a versatile AI workstation 

Only Smalltalk/V lets 
you experience the thrill 
of a responsive AI work- 
station while learning 
artificial intelligence 
techniques and using 
them to create 
practical applications. 

gives me the feel of an 
AI workstation on 
my PC." 

— Darryl Rubin, 
Technical Editor, 

AI Expert 


Watching someone use an AI 
workstation is a vision of what the 
computer was meant to be. Fingers dance 
across the keys as windows dilate, shift, overlap, 
and disappear on the bit-mapped display. Ideas 
spring to life as program fragments execute, are 
modified, expanded, combined and tried again in 
a creative arabesque of text and graphics. The 
interface vanishes, man and machine are one. 
Smalltalk/V brings that experience to 
your IBM-PC. 

"We use Smalltalk 

as our primary language 

for teaching artificial intelligence/' 

— Dr. John Pugh 

Director, School of Computer Science 

Carleton University 

Of the three main AI languages, Smalltalk, LISP, 
and Prolog, only Smalltalk was intended for 
individual use on a personal computer. Only 
Smalltalk was designed to provide a match 
between human and computer models of 
reality. Only Smalltalk is easy to learn, easy to 
read, and easy to use. 

"We found Smalltalk/V excellent 
for developing advanced decision- 
support tools based on decision 
analysis and AI techniques." 

—Dr. Samuel Holtzman, 
Professor, Stanford University 

Smalltalk/V is pure object-oriented programming 
— a powerful tool for designing frame/script- 
based knowlege representations, inference 
engines, expert systems, simulation environments, 
intelligent interfaces, network control software, 
communications interfaces, and much more. 

Methods, our character-based Smalltalk, is now 
available for $79- It has all of the features of 
Smalltalk/V except graphics, rules, source-level 
debugger, and object-swapping. However, it 
supports color, includes the communication 
package, and does not require a mouse. 

B\TE and BIX are trademarks of McGraw-Hill, Inc. IBM, IBM-PC, and 
IBM PC-AT are trademarks of International Business Machines 
Corporation. Unix is a trademark of Bell laboratories. 
Inquiry 92 

"Smalltalk/V is the 

highest performance 


programming system 

available for PCs." 

— Dr. Piero Scaruffi 

Chief Scientist 

Olivetti Artificial Intelligence Center 

Smalltalk/V Features 

• High-performance 
object-oriented programming 
Integrates object-based and rule-based 
programming with object-oriented Prolog 
A user-extensible, open-ended environment 
A responsive graphical user interface 
Supports exploratory programming and 

Class hierarchy with inheritance creates highly 
re-useable code 

Smalltalk source code included, with browser 
windows for easy access and modification 
A huge toolkit of classes and objects for 
building a variety of applications 
Object-swapping creates virtual memory on 
hard or RAM disk 

Bit-mapped graphics with bit and form editors 
A sophisticated source-level debugger 
Automatic change log for easy recovery 
from errors 

Powerful directory/file browser system for 
organizing DOS files 
Optional communications interface to 
Unix™ and other systems 
Access to other languages and DOS functions 
DOS command shell 

Detailed owner's manual designed for both 
beginners and advanced programmers 

YES! I want to turn my PC into an AI workstation. Send me . . 

^\ Smalltalk/V $99 

J Communications for Smalltalk/V . . M9 

| Methods (including 

Communications) $79 

Shipping and Handling £ 

CA residents add applicable 

sales lax $_ 


Shipping and Handling 

U.S., Canada, and Mexico $ 5.00 

Elsewhere $15.00 

I enclose □ Check □ Money Order 

□ Credit card information □ mc □ visa 


. Expiration- 

Signature . 

Street Address:. 
City/Slate/Zip: _ 


SmalltalkA requires DOS and 5I2K RAM on IBM PCs (including AT) or 
"compatibles," a Microsoft or compatiblemouse, and a CGA, EGA, Hercules, 
or AT&T Hi-Res graphic controller. 

digitalk inc. 

5200 West Century Boulevard 

Los Angeles, CA 90045 (213) 645-1082 


two levels, Name Binding Protocol 
(NBP) and Apptetelk Transaction Pro- 
tocol (ATP), to boot the II GS from a 
remote file server (thus allowing it to 
be used in a network environment 
without its own disk drive). 


The price for the Apple II GS had not 
been set at the time of this writing, 
but we expect the price for a starter 
system with one 3 '/2-inch disk drive 
and a monochrome monitor to be in 
the $1400 to $1600 range. 


For many users, especially current 
owners, software and hardware com- 
patibility will be the make-or-break 
factor in their decision to buy an 
Apple II GS. The II GS engineers did 
an incredible job of designing a new, 
more powerful computer that is large- 
ly compatible with the existing body 
of Apple II hardware and software. 
One engineer estimated the II GS's 
hardware compatibility at "about 80 
percent" and its software compatibili- 
ty at "95 to 99 percent." 

Complete software compatibility is 
impossible, largely because of the 
completely unregulated way the 
Apple II has been programmed in the 
last 10 years. People wrote code that 
jumped into the middle of ROM rou- 
tines, used machine language op 
codes that were unimplemented in 
the 6502 (but that are in the 65C816), 
and implemented countless copy- 
protection schemes, many of which 
depended on particular hardware 
details that were replaced in later 
Apple II designs. 

The final verdict must wait until we 
get to test a production-line machine, 
but we tested several Apple II game 
and business programs and found 
two that fail trying to execute former- 
ly unimplemented op codes (THE 
Spreadsheet and Serpentine) and one 
(HomeWord running under ProDOS 
1.1.1) that doesn't work because the 
65C816 does not completely emulate 
the way the 6502 wraps an X-register 
address from FFFF hexadecimal to 
0000 (it wraps to 10000 hexadecimal). 

Most peripheral cards that do not 
implement "phantom slots" (where a 
multifunction card appears to be 

several cards in different slots) will 
work, but some cards won't; we were 
told, for example, that the Mountain 
Computer Music Card set won't work 
because of the way it uses interrupts. 
As with previous enhancements to 
the Apple II line, such differences 
cause problems for the first year or 
so, then they fade from consciousness 
as companies revise their products 
and users find patches or workaround 
measures for products that don't 
work. In general, the more recent your 
Apple II software or hardware, the 
more likely it is to run properly. 


We wrote this product preview in July 
1986, after two days with the Apple 
II GS engineering staff, much study of 
seven volumes of developers' tech- 
nical documentation, and subsequent 
telephone conversations with the 
engineers. When we saw the Apple II 
GS, the firmware was about to be 
"frozen," and the machine itself was 
in "final preproduction"; only minor 
changes are likely to be made at this 
point. We did not get to see the Finder 
software, but we had several hours of 
hands-on experience and ran several 
impressive sound and graphics 

(We wish to thank Rob Moore, 
Harvey Lehtman, and many other 
Apple people for their help.) 


What do you say about such in- 
novative energy that has been 
directed primarily toward preserving 
a hardware design that is 10 years 
old? The Apple II GS designers' 
achievements are remarkable, but the 
burden of the classic Apple II archi- 
tecture, now as venerable (and out- 
dated) as COBOL and batch process- 
ing, may have weighted them down 
and denied them any technological 
leaps beyond an exercise in miniatur- 
ization. Also, the 65C816 may prove 
to be an IC of mixed blessings: While 
it does provide a. means of support- 
ing the 6502 within a processor that 
also operates in a 16-bit mode, to pro- 
grammers it represents yet another in- 
struction set that has to be learned 
and whose oddities will have to be 
dealt with. 

The Apple II GS affirms several 
trends in microcomputer design that 
we should not ignore: improved 
graphics and sound, larger processor 
and memory capacity, and the use of 
a mouse and a desktop/icon/windows 
user interface. The machine also 
follows a trend but breaks new ground 
in the Apple II line by including large 
amounts of system firmware that is as 
important as the machine's new hard- 
ware features. 

Because Apple perceives itself as a 
"premium label," its pricing will not 
be as aggressive as many users would 
like it to be. Apple is becoming— dare 
we say it?— more and more like IBM, 
selling more on name, reputation, and 
installed base of software and hard- 
ware (not a strong selling point, in the 
case of Apple \\ software) than on 
computing-power-per-dollar value. 

The Apple II GS. hog-tied by Apple 
II compatibility, approaches but does 
not match or exceed current micro- 
computer capabilities. The 8086-like 
segmented memory of the 65C816 is 
not as elegant as that of the 68000, 
used in the Apple Macintosh, the 
Commodore Amiga, and the Atari 
520ST In addition, the 65C816 lacks 
the hardware multiply and divide in- 
structions available in both the 8086 
and the 68000 processors. The Apple 
II GS's graphics, though now com- 
petitive, do not offer any advantages 
over the Amiga's or the Atari ST's, nor 
is its price competitive with either. Its 
only clear superiority is in its sound 
capabilities, which for many buyers 
will not outweigh graphics and price. 

Ironically, the Apple II GS will suf- 
fer from the traditional lack of soft- 
ware and hardware upon its introduc- 
tion. Vendors will take longer than 
they expect to come out with new 
products, and many will enhance 
existing products for the Apple II in- 
stead of writing new software that 
fully exploits (and is limited to) the 
Apple II GS. Granted, a tremendous 
amount of software is already, out 
there, but the Apple He and He will run 
it with fewer compatibility problems 
and at a significantly lower cost. As 
with new machines before it, people 
will buy the Apple II GS because they 
see the unrealized promise of its new 
features. ■ 

98 BYTE • OCTOBER 1986 

Microsoft FORTRAN. 
The overwhelming favorite. 

How did Microsoft®FORTR AN get so popular? 

It could be the mainframe compatibility. Our 
compiler makes porting applications a cinch 
with overlays and the ANSI features you need. 

It could be our support for arrays and 
COMMON blocks larger than 64K. So you can 
tackle mainframe-size problems. 

It might be the shelves and shelves of third 
party support libraries. No other FORTRAN 
comes close. 

Cut your development time dramatically. The Symbolic Debug utility, part 
of the Microsoft Macro Assembler, lets you debug your FORTRAN programs 
using your original source code or the resulting disassembly. For example, 
you can set breakpoints on line numbers, observe the contents of variables and 
expressions, and examine the contents of the stack. 

It could be the extensive math support. Our 
collection of math libraries is simply the largest 
available. Tackle real problems with direct 8087 
support or emulation. Use IEEE floating point 
or— for extra speed— the altmath package. 

It could be the comprehensive set of utilities. 
A powerful linker and library manager com- 
bination. Plus tools like EXEMOD and 
EXEPACK. Standard. 

It could be the XENIX® and MS-DOS® 
source-level compatibility. Or the direct inter- 
language calling to Microsoft C, Pascal and 
Assembler. Or the ability to work with our 
Macro Assembler s symbolic debugger. 

It could be the value. Nobody offers a 
FORTRAN package this complete at this low 
a price. 

Why is Microsoft FORTRAN the most 
popular FORTRAN? 
All the above. 

Microsoft FORTRAN Compiler Version 3.3 
for MS-DOS and XENIX 286 

Microsoft FORTRAN Compiler 

♦Implements most ANSI 77 standard features, plus 

♦ Easily port mainframe/minicomputer programs with little 
or no modification. 

♦Overlay support in the compiler and linker. 
♦Common blocks and arrays greater than 64K. 
♦Supported by the largest number of third party libraries. 

♦ Includes a full set of math libraries to select from: 

♦8087/80287 emulation. 
♦8087/80287 coprocessor support. 
♦Floating Point without 8087/80287. 
♦BCD Floating Point. 
♦Conditional compilation. 

♦ Link your FORTRAN routines with Microsoft C Compiler 
(version 3.0 or higher), Microsoft Pascal (version 3.3 or 
higher), and Microsoft Macro Assembler. 

♦ MS-DOS 3.1 network support and IBM* local area network 

♦ Source code compatible between MS-DOS and XENIX 286. 
♦Do source level debugging with the Symbolic Debug 

Utility, available separately with Microsoft Macro 
Object Code Overlay 

♦ Simple overlay linker combines relocatable object modules 
created using Microsoft languages into a single program. 

♦ Link very large programs (over 1 megabyte) using overlays. 
Library Manager 

♦Create, organize and maintain your object module libraries 

created with Microsoft languages. 
Microsoft EXE File Compression Utility 
(MS-DOS only) 
♦A utility to pack EXE files for smaller size on disk and 

faster loading at execution time. 
Microsoft EXE File Header Utility (MS-DOS only) 
♦A utility that allows you to display and modify the fields 

in EXE file headers. 

For the name of your nearest Microsoft 
dealer call (800) 426-9400. In Washington State 
and Alaska, (206) 882-8088. In Canada, call 


The High Performance Software™ 

Microsoft, XENIX and MS-DOS are registered trademarks and 

The High Performance Software is a trademark of Microsoft Corporation. 

IBM is a registered trademark of International Business Machines Corporation. 

Finally, a language worth 

For years BASIC has been everyone s first 
language. And for almost as long, they Ve been 
tempted by other languages. Lured by promises 
of more speed, more power. 

We have a solution. A new language that s a 
substantial improvement over BASIC A. Faster. 
More structured. Finally, a compelling reason to 
leave BASIC. 

Introducing Microsoft's QuickBASIC 
Compiler, Version 2.0. 

At last, you can have the latest programming 
techniques, combined with the solid foundation 
of BASIC. Our new compiler is as compatible 
with BASIC A as you can get. At the same time 
it offers the extra speed and power you ve been 
looking for. 

Run faster with compiled code* 

If there's one thing you Ve asked for, its speed. 
And Microsoft® QuickBASIC simply blazes. 
Old BASIC A programs will run up to ten times 
quicker once they Ve been compiled. Sometimes 
even faster. 

Everything you need* Built-in* 

Making programs run faster is only part of the 
story, though. The new Microsoft QuickBASIC 
Compiler includes a full-screen editor, built-in. 
So now you can make the jump from writing to 
RUNning in no time flat. Edit your program, 
compile it, and run it. Faster than any other 
BASIC compiler around. All without leaving 
our on-line help and prompts. 

leaving BASIC for. 


On the rare chance your program doesn't run 
100% the first time out, we've got another sur- 
prise for you. The Microsoft QuickBASIC 
debugger. Our full-screen tracing lets you debug 
your programs while watching the source code 
execute. A line at a time, or with breakpoints. 
As easy as can be. 

Our compiler is also smart enough to save you 
time. First, by finding any errors in one pass. 
Second, by putting your editor s cursor on the 
problem. Automatically. So you dorit have to get 
lost in a maze of error codes and line-numbers. 

The BASIC virtues. And more* 

Speaking of line numbers, let s not. Because 
line numbers are strictly optional. And Microsoft 
QuickBASIC lets you use alphanumeric labels 
as well. Now you can GOTO ErrorCheck instead 
of line number 6815. 

Or you could stop using GOTOs altogether. 
There are a variety of options that could make 
the GOTO an endangered species. Features like 
multi-line IF-THEN blocks. And named sub- 
programs. Now your BASIC programs can be 
as structured and organized as you want. 

We've only just begun to talk about the 
virtues of Microsoft QuickBASIC. There are 
dozens of enhancements to your favorite 
language. Things like larger arrays. Local and 
global variables. Reusable modules that let you 
create libraries of your most often-used routines. 
All explained in a revised manual that includes 
a complete language reference. 

Making your quick escape* 

If all these features follow your BASIC 
instincts, then zip on down to your nearest 
Microsoft dealer. That's where youll discover the 
best surprise of all. The price. Only $99 for the 
best reason to leave BASIC. 

For the name of your nearest Microsoft dealer, 
call (800) 426-9400. In Washington State and 
Alaska, (206) 882-8088. In Canada, call (416) 

Microsoft® QuickBASIC 

The High Performance Software™ 

Microsoft is a registered trademark and The High Performance Software is a trademark of 
Microsoft Corporation. IBM is a registered trademark of International Business Machines Corporation. 

Microsoft QuickBASIC Compiler Version 2.0 
for IBM® PC and Compatible Computers. 

BASICA Compatibility 

♦ Sound statements including SOUND and PLAY 

♦ Graphics statements including WINDOW VIEW DRAW 

♦Support of EGA extended graphics modes. NEW! 

♦ BASICA structures are supported including WHILE/WEND, 


event handling. f 


Results of Sieve Benchmark BASICA 3.1 QuickBASIC 2.0 

Seconds per iteration 



Complete Programming Environment 

♦ Built-in Editor that places the cursor on found errors auto- 
matically. NEW! 

♦ Compile entirely in memory at speeds up to 6000 lines per 
minute. NEW! 

♦ Link routines once when starting a programming session and 
no need to link again when changing programs. NEW! 

♦ Built-in debugger with single-step, animate, and trace modes. 

♦Create stand-alone programs. 
Alphanumeric Labels 

♦ Can be used to make your programs more readable. Line 
numbers are not required but are supported for BASICA 

Structured Programming Support 
♦Block IF/THEN/ELSE/END IF eliminates the need for 
GOTO statements. NEW! 

♦ Subprograms can be called by name and passed parameters. 
Both local and global variables are supported. 

Modular Programming Support 

♦ Separate compilation allows you to create compiled BASIC 
libraries to use and re-use your programs. 

♦ A library of routines to access DOS and BIOS interrupts is 
supplied. NEW! 

Large Program Support 

♦ Code can use up to available memory. 

♦ Numeric arrays, each up to 64K bytes, 
can use up to available memory. 

ix & LAN Solutions 


"We weren't using 
our PC/AT effectively 
until we connected 
Kimtron terminals." 

Dr. Ed Generazio 



KT-7/PC 2 PC Work-a-like Terminal 
Compatibility: Multilink Advanced 3 , 

PC-Slave/16 4 , PC-Slave 12 
Display: 80 x 25, IBM PC character 

set, PC look-a-like attributes, 14" 

green or amber 
Keyboard: AT style std. IBM 

scan/ASCII codes. 

5161 /AT style opt. 
Pages of memory: 1 std. 2 or 4 opt. 
Communications: 2 bi-directional 

RS-232C serial (data & printer) 

Operating systems: works with 

PC-DOS 1 , MS-DOS 5 , QNX 6 , 

UNIX 7 , XENIX 5 , THEOS 8 , PICK 9 , 

and Concurrent DOS 10 . 
Retail price: $695.00 

QUARTET 2 4-port I/O card, 

Retail price: $299.00 


K-Net 2 Local Area Network 

Software Compatibility: IBM's 
NetBIOS 1 , Token-Ring 1 , PC 
Network 1 , Novell's Advanced 
Netware 11 , Kimtron's K-Net 2 

Access Method: CSMA/CD 

Topology: Distributed Bus 

Data Rate: 1 million bps (baseband) 

Cable: Twisted-pair/phone wire 

Distance: Up to 4000 ft. 

Addressable users: Up to 255 

Physical: Half-sized card 

Operating systems: 

PC-DOSVMS-DOS 5 2.0 or later 

Dedicated file server: Not needed 

Multiuser solutions supported: 
Multilink Advanced 3 , 
PC-Slave/16 4 , PC-Slave 12 

Other features: message 
communication and print 

Retail price: $395.00 


KW-l 8088, 4.77 MHz, 256 Kbytes 
Retail price: $995.00 

KW-2 8088-2, 8 MHz, 256 Kbytes 
Retail price: $1,195.00 

KW-3 80286, 6 or 8 MHz, 

256 Kbytes 
Retail price: $1,995.00 

All the above include: AT style 
keyboard, 8 slots, built-in K-Net 2 
with remote boot. Upgradeable to 
"complete" PC. Monitors, video 
boards, additional memory, and 
other keyboard layouts are also 

(800) 828-8899 
(4Q8) 436-6550 (In CA) 
1705 Junction Ct., Bldg. #160 
San Jose, California 95112 

:< K imtron 

Trademarks: 'IBM 2 Kimtron Software Link 4 Alloy ^Microsoft 6 Quantum 7 tte)l Labs "THEOS Software y PICK Technologies '"Digital Research "Novell ,2 ADC 
© Copyright 1986 by Kimtron Corp. 

102 BYTE • OCTOBER 1986 

Inquiry 157 for End-Users. Inquiry 158 for DEALERS ONLY. 



by Steve Ciarcia 

Steve's new and improved device includes 
onboard CPU and intelligent firmware 

I don't like admitting that 
I made a mistake, but ap- 
parently I did. Well, not ac- 
tually. You see, I was 
dragged into ... Let me 
start from the beginning. 
My February 1985 Cir- 
cuit Cellar article was a project on how to 
build a serial EPROM programmer, about 
which I said: "The latest Circuit Cellar 
EPROM programmer is a serial-port pro- 
grammer that has the speed of a turtle, the 
intelligence of the mightiest computer (that 
is, it has absolutely no smarts of its own), 
and is as functional as a doorstop between 
uses. On the positive side, it's fully docu- 
mented, universally applicable, and easily 
expandable to accommodate future 
EPROM types." 

What a mess after it was published! Every- 
body must have built this programmer. 
BYTEnet almost shut down the Peter- 
borough phone company as people down- 
loaded the BASIC listings, and my staff 
developed "postage tongue" replying to the 
correspondence. Needless to say, the proj- 
ect was well received. 

In truth, it was an experimenter's project 
intended to satisfy a certain core of sup- 
porters yet enlighten the larger audience of 
readers about EPROM programming in 
general. Because I could not gauge its 
potential reception, and also because I 

didn't see it as having any greater perfor- 
mance than low-cost bus-compatible pro- 
grammer boards, I didn't arrange to have 
it made into a printed circuit board as are 
most of my projects. I'm embarrassed to say 
that even after all these years I under- 
estimated the number of experimenters 
who wanted to build a serial EPROM pro- 

It's too late to go back now, but I have to 
make up for past indiscretion and find some 
way to save face. I know that there are 
warmed soldering irons all across the coun- 
try waiting for me to apologize appropriate- 
ly. I trust you'll accept this improved rendi- 
tion on an old theme as proper recom- 

As the title indicates, this programmer is 
still intended for serial-port operation. Thus, 
it retains computer and bus independence. 
The primary difference between then and 
now, however, is the addition of a micropro- 
cessor that greatly enhances its functions. 
The new Circuit Cellar intelligent serial 
EPROM programmer (CCSP for short) pro- 
grams more types of EPROMs faster and 

Steve Ciarcia (pronounced "see-ARE-see-ah") is an 
electronics engineer and computer consultant with ex- 
perience in process control, digital design, nuclear in- 
strumentation, and product development. The author 
of several books on electronics, he can be reached at 
P.O. Box 582, Glastonbury, CT 06033. 


OCrOBER 1986 • BYTE 103 


more reliably. It also functions as a 
stand-alone programmer for copying 
or verifying EPROMs. (See photo 1.) 
The following is a list of CCSP fea- 

• RS-2 3 2-compatible (no handshak- 
ing necessary) 

• internal V pp power generation 

• menu-selectable EPROM types (no 
programming configuration jumpers) 

• default power-up selectable data 

• automatic power-down of EPROM 
for installation/removal 

• stand-alone or computer system/ter- 
minal-connected operation 

• menu-driven operation 

• single-byte or full-buffer write 

• 32K-byte on-board memory buffer 

• read, copy, or verify EPROM 

• Intel hexadecimal file upload/down- 

• verify after write 

• verify EPROM erasure 

• screen dump by page or byte 

• BASIC driver that can be modified 
by the user 

• program EPROMs in standard 50- 

millisecond and 1-ms fast algorithm 

• support V pp settings of 2 5, 21, and 
12.5 volts 

• program all 27xxx 5-V single-supply 
EPROMs, including 2716, 2732, 2732A, 
2764, 2764A, 27C64, 27128. 27128A, 
27CI28, 27256, 27512, and any func- 
tional equivalents 

Obviously, a list this impressive 
would take a great deal of effort to put 
together as a single month's project. 
The potential software development 
nightmares of assembly language 
serial drivers, menu displays, and 
table manipulations hardly made it 
worth adding a microprocessor to my 
original BASIC-language-manipulated 
unit. Besides, how could it be done 
in one month? 

BASIC allowed a significant level of 
interactive menus and help displays 
while requiring little software over- 
head. Unfortunately, using a high- 
level-language interpreter to simplify 
software development is of little value 
when the primary goal of producing 
a better programmer requires fast 
data manipulations that are best ac- 

Photo I: Finished printed circuit prototype of the serial EPROM programmer. 
The digital section and memory buffer are at the bottom center. The analog- 
voltage-level switching section is at the top center. 

complished in assembly language. 

Rather than be thwarted by this ap- 
parent dilemma, 1 decided to design 
a hybrid system that used both BASIC 
and assembly language. The obvious 
choice was the BASIC- 5 2 computer/ 
controller 1 presented in the August 
1985 project. With the help of soft- 
ware guru and friend Bill Curlew, the 
CCSP was designed, built, and tested 
in two weeks flat. 

The CCSP uses an Intel 8052AH- 
BASIC microprocessor that contains 
an 8K-byte ROM-based BASIC inter- 
preter. Besides manipulating strings, 
tables, and menus, the BASIC contains 
serial communication drivers and 
easily links to assembly language rou- 
tines. It seemed the perfect engine for 
a quickly designed user-modifiable 

A Hybrid Approach 

The CCSP is a stand-alone microcom- 
puter with an application-specific I/O 
configuration. It supports 40K bytes 
of operating system and buffer RAM 
and I6K bytes of program ROM. It 
uses six parallel I/O ports to drive the 
programming-pin level-shifter voltage- 
control circuitry, EPROM address and 
data lines, and user-interactive but- 
tons and display. The CCSP can be 
used by itself to copy EPROMs or, 
when connected to a terminal or com- 
puter, as a full-function programmer/ 
verifier. It requires no programming 
jumpers or personality modules and 
is completely automatic. It programs/ 
examines/verifies all 5-V EPROMs 
from 2716s through 27512s in both 
standard and fast modes (on appli- 
cable devices). 

In the sections that follow, I'll 
describe the configuration of the 
microcomputer and its unique I/O 
structure. Once you have the hard- 
ware in hand, I'll describe the system 
software and how the different modes 
operate. First, I'll go over some 
EPROM basics. 

A Review 

A personal computer, even in its 
minimum configuration, always con- 
tains some user-programmable mem- 
ory, or RAM, usually in the form of 
semiconductor-memory integrated 
circuits. This memory can contain 

104 BYTE • OCTOBER 1986 


both programs and data. Any ma- 
chine-word-level storage element 
within the memory can be individual- 
ly read or modified (written) as 

Any of several kinds of electronic 
components can function as bit- 
storage elements in this kind of mem- 
ory. TTLrtype 7474 flip-flops, bistable 
relays, or tiny ferrite toroids (memory 
cores) are suitable, but they all cost 
too much, are hard to use, and have 
other disadvantages. 

In personal computer and other 
microprocessor-based applications, 
the most cost-effective memory is 
made from MOS integrated circuits. 
Unfortunately, data stored in these 
semiconductor RAMs is volatile. 
When the power is turned off, the 
data is lost. Many ways of dealing 
with this problem have been devised, 
with essential programs and data 
usually stored in some nonvolatile 
medium. r 

In most computer systems, some 
data or programs are stored in ROM. 
A semiconductor ROM can be ran- 
domly accessed for reading in the 
same manner as the volatile memory, 
but the data in the ROM is perma- 
nent. The data in a mask-programmed 
ROM is determined during the manu- 
facturing process. Whenever power is 
supplied to the ROM, this permanent 
data (or program) is available. In small 
computer systems, ROM is chiefly 
used to contain operating systems 
and/or BASIC interpreters— programs 
that don't need to be changed. 

Another type of ROM is the PROM, 
which is delivered from the factory 
containing no data. The user decides 
what data to put in it and permanent- 
ly programs it with a special device. 
Once programmed, PROMs exhibit 
the characteristics of mask-pro- 
grammed ROMs. You might label such 
PROMs "write-once" memories. 

The ultraviolet-light erasable 
EPROM is a compromise between the 
"write-once" kind of PROM and 
volatile memory. You can think of the 
EPROM as a "read-mostly" memory, 
used in read-only mode most of the 
time but occasionally erased and re- 
programmed as necessary. The 
EPROM is erased by exposing the 
silicon chip to ultraviolet light at a 

wavelength of 2 53 7 angstroms. Con- 
veniently most EPROM chips are 
packaged in an enclosure with a trans- 
parent quartz window. 


EPROMs from several manufacturers 
store data bits in cells formed from 
stored-charge FAMOS (floating-gate 
avalanche-injection metal-oxide semi- 
conductor) transistors. Such tran- 
sistors are similar to positive-channel 
silicon-gate field-effect transistors, but 
with two gates. The lower or floating 
gate is completely surrounded by an 
insulating layer of silicon dioxide, and 
the upper control or select gate is 
connected to external circuitry. 

The amount of electric charge 
stored on the floating gate determines 
whether the bit cell contains a I or a 
0. Charged cells are read as 0s; un- 
charged cells are read as Is. When the 
EPROM chip comes from the factory, 
all bit locations are cleared of charge 
and are read as logic Is; each byte 
contains hexadecimal FF. 

When a given bit cell is to be 
burned from a I to a 0, a current is 
passed through the transistor's chan- 
nel from the source to the gate. (The 
electrons, of course, move the op- 
posite way.) At the same time, a rela- 
tively high-voltage potential is placed 
on the transistor's upper select gate, 
creating a strong electric field within 
the layers of semiconductor material. 
(This is the function of the + I2.5-V, 
+ 2I-V. or +25-V V pp charging poten- 
tial applied to the EPROM.) In the 
presence of this strong electric field, 
some of the electrons passing 
through the source-drain channel gain 
enough energy to tunnel through the 
insulating layer that normally isolates 
the floating gate. As the tunneling 
electrons accumulate on the floating 
gate, it takes on a negative charge, 
which makes the cell contain a 0. 

When data is to be erased from the 
chip, it is exposed to ultraviolet light, 
which contains photons of relatively 
high energy. The incident photons ex- 
cite the electrons on the floating gate 
to sufficiently high-energy states that 
they can tunnel back through the in- 
sulating layer, removing the charge 
from the gate and returning the cell 
to a state of I . 

When data is 

to be erased 

from the chip, 

it is exposed to 

ultraviolet light. 

The 27xxx EPROMs contain bit- 
storage cells configured as individual- 
ly addressable bytes. This organiza- 
tion is often called "2K by 8" for a 
2716 or "8K by 8" for a 2764. The 
completely static operation of the 
device requires no clock signals. The 
primary operating modes include 
read, standby, and program (program- 
inhibit and program-verify modes are 
important primarily in high-volume 

Control inputs are used to select the 
chip and configure it for one of these 
operating modes. In the program 
mode, particular bit cells are induced 
to contain values. Both Is and 0s are 
in the data word presented on the 
data lines, but only a causes action 
to take place. For example, the 2 7 1 2 8 
is in the programming mode when V pp 
input is at 2 1 V and CE and PGM are 
both at TTL low. The data to be pro- 
grammed is applied 8 bits in parallel 
to the data output pins. For regular 
programming, CE should be kept TTL 
low at all times while V pp is kept at 
2 1 V. When the address and data are 
stable, a 50-ms (55 ms maximum) 
active-low T TL pro gram pulse is ap- 
plied to the PGM input. A program 
pulse must be applied at each ad- 
dress location to be programmed. 

Standard vs. Fast 

In the old days, all we had to contend 
with were 50-ms timing pulses (ne- 
glecting obsolete 1702 and 2708 
EPROMs). Today, the newest EPROMs 
can use a fast closed-loop program- 
ming algorithm that lessens program- 
ming time (realize that a 27 512 takes 
about I hour to program in 50-ms in- 
crements). The CCSP supports fast 


OCTOBER 1986 -BYTE 105 


The fast algorithm uses closed-loop 
margin checking. To ensure reliable 
program margin, the fast algorithm 
utilizes two different pulse types: ini- 
tial and overprogram. The duration of 
the initial PGM pulse(s) is I ms, which 
will then be followed by a longer over- 
program pulse of length Ax ms; some 

chip types use 3x (x is the number of 
initial 1-ms pulses applied to a par- 
ticular location before a correct verify 
occurs). Once it is verified, four times 
that number of pulses are applied to 
the same location to permanently 
burn the data. If 1 5 (some chip types 
require 25 pulses) 1-ms pulses are ap- 














21V . 21V 

12.5V 12.5V 

5V — Uv — »5V 



12.5V ,-, _ 5V 






N/C PGM PGM A14 A14 

-5V — I 1— 5V 1— 1 1— 5V 1— | 1— 5V 

26/24 V CC 


V C C 

LJ ov I — I ov — I LI ov — I i—l o\ 

A13 A13 A13 



23/21 V PP All All All All All 

JlXv JIXv JlXv JlXv JUTv 

22/20 OE 


20/18 CE 

OE/Vpp OE 

25V — |5V 

OV — 'OV I OV 


_nr _m v 

— I !_0V — I L_o> 

-ov — i u— ov 1 OV 1 OV I— 'OV l-Jov 


plied to any single-byte location with : 
out reaching the margin, the overpro- 
gram pulse is applied automatically. 

The entire sequence of program 
pulses and byte verifications is per- 
formed at V cc = 6.0 V and V pp = 
21.0 V (V pp may be 12.5 V on some 
EPROMs). When the fast program- 
ming cycle has been completed, all 
bytes should be compared to the 
original data with V cc = V pp = 5.0 V. 

The fast algorithm may be the 
preferred programming method since 
it allows certain EPROMs to be pro- 
grammed in significantly less time 
than the standard 50-ms-per-byte pro- 
gramming routine. T/pical program- 
ming times for 27128s, for example, 
are on the order of 2 minutes, a six- 
fold reduction in programming time 
from the standard method. 

Configuration Maze 

The first problem encountered in any 
EPROM programmer design is to 
compare the pins of the various 
EPROMs (see figure lb). Among the 
28 defined pins (four are unused on 
24-pin devices). 21 are used for the 
same functions (address and data). 
Evidently, semiconductor manufac- 
turers never thought very far ahead or 
talked to each other, because the re- 
maining seven pins are a complicated 
switching maze. Among the different 
EPROMs. the same pin location can 






































































































































































































































Figure I: (a) EPROM prograrnrning-pin functions by EPROM type, (b) The great EPROM pin-out maze, illustrating the 
configuration of those EPROMs the CCSP is designed to handle. 

106 BYTE • OCTOBER 1986 


supply power, address, or program- 
ming pulses. Figure la illustrates the 
differences in detail. 

In inexpensive programmers, con- 
figuration jumpers are frequently 
used to select the specific wiring con- 
figuration for different EPROM types. 
Wire jumpers rather than semicon- 
ductor switches are used because of 
the high currents involved. T£ke pin 26 
(pin 24 on 24-pin EPROMs) with either 
a 2732 or 27128 installed, for exam- 
ple. In both cases, the voltage level is 
5 V. On a 27128 it is a TTL AI3 ad- 
dress line; on a 2732 it is a 1 50-milli- 
ampere V cc power line. Similarly, pin 
22 (all pin numbers are referenced to 
a 28-pin layout) has to be set at V, 
5 V, 12.5 V, 21 V, or 2 5 V at currents 
ranging from 400 microamperes to 
50 mA, depending upon the EPROM. 

Fortunately, only five of the seven 
configuration pins require elaborate 
voltage and current control. Rather 
than use mechanical jumpers, 1 de- 
signed a voltage-control circuit that 
could be preset to the voltage limits 
of the desired EPROM type and easi- 
ly pass high current when required. 
Figure 2 illustrates this basic circuit 
that is duplicated for each of the five 
pins (pins 28, 26, 1. 22, and 23). 

The level shifter uses an LM31 7 volt- 
age regulator as a programmable 
voltage controller. The basic LM3 1 7 
output voltage is set by two resistors: 
RI between the adjustment pin and 
ground and R2 between the adjust- 
ment pin and the output. As the for- 
mula shows, with RI=665 ohms and 
R2 = 221 ohms, the output is 5.0 V. 

In this configuration, various RI 
resistors can be connected from the 
adjustment pin to ground through 
open-col'ector 7407 drivers. These 
were used since they operate at up to 
30 V (don't substitute a 7417). The 
four drivers from top to bottom set 
5 V, 12.5 V, 21 V, and 25 V, respective- 
ly (not all sections are required for 
each EPROM pin). Their inputs are fed 
by a parallel output port. 

Normally, the regulated output of 
an LM317 is 1.2 V to 32 V. An addi- 
tional two-transistor control circuit is 
added to allow the output to go to 
V on command. Rather than provid- 
ing a resistance path to ground, how- 
ever, this is accomplished by apply- 

ing a negative 1.2 V to the adjustment 
pin. Because there is no way to know 
how many of the control circuits will 
be set to V at any one time or if the 
7407 drivers are enabled concurrent- 
ly, the -1.4-V bias source is itself a 
regulated supply. 

The CCSP level-shifter circuit can 
simulate a variety of programmable 
conditions. For example, by setting 
the 7407 driver that limits the output 
to 5 V and pulsing the 0-V enable line 
we have a TTL-level PGM, OE, or CE 
control line. (In the tests I conducted, 
the circuit easily responded to control 
input changes of 20 kilohertz with lit- 
tle overshoot on the output. At those 
speeds, however, the output filter ca- 
pacitor should be small.) Since the cir- 
cuit is also capable of supplying 500 
mA at 5 V, it is also appropriate to use 
this same circuit to supply and con- 
trol V cc . 

The heart of the CCSP is found in 
the analog switching system and the 
management of the seven control 
lines in figure la. While I haven't ex- 

I designed a circuit 
that could be preset 
to the voltage limits 
of the desired EPROM. 

plained yet how these level shifters 
are individually controlled, it still 
seems appropriate to show how they 
are ultimately configured. Figure 3a 
demonstrates how they are con- 
nected to the Z1F socket (zero inser- 
tion force programming socket), and 
figure 3b outlines their power source 

8-bit Microcomputer 

As 1 mentioned earlier, the CCSP's in- 
telligence is provided by an Intel 
8052AH microcomputer. BAS1C-52 is 
particularly suited for this application, 






7r^ 1C V F 


-^ 0V, 5V, 12.5V, 21V, 25V 


-< 12.5V ENABLE 

-< 21V ENABLE 

-< 25V ENABLE 


R 1X 
R 2 

Vout=VrefU+itM + «ADJ Rix 

1.25 (l + -^-)+.00005 R 1X 
R 2 

Figure 2: typical programmable voltage-control circuit for EPROM pins 28, 
26, 1, 22, and 23. 

OCTOBER 1986 -BYTE 107 


Three control lines— 

RD, WR, and 

PSEN— are gated 
to allow 64K bytes 
of combined program 
and data memory. 

providing IF. . THEN. FOR. . .NEXT 
CALL statements as well as a broad 
repertoire of 8051 assembly language 
instructions. Calculations can be han- 
dled in integer or floating-point math. 

The 8052 AH contains an 8K-byte 
BASIC interpreter in ROM, 256 bytes 
of RAM, three 16-bit counter/timers, 
six interrupts, and 32 I/O lines that are 
redefined as a 16-bit address and an 
8-bit data bus. A minimum of I K byte 
of RAM is required for BASIC- 5 2 to 
function, and any RAM must be 
located starting at 0000 hexadecimal. 
(I won't go into great detail on this 
computer since it closely resembles 
the BCC-52 presented in August 
1985.) The microcomputer section of 
the CCSP is outlined in figure 4. 

Three cont rol line s-RD (pin 1 7), WR 
(pin 16), and PSEN (pin 29)-are gated 
to allow 64K bytes of combined pro- 
gram and data memory. The three 
most significant address lines (AI3- 
AI5) are connected to a 74LSI38 
decoder chip, IC4, which separates 

the addressable range into eight 8K- 
byte memory segments, each with its 
own chip select (Y0-Y7). The four 
most significant chip selects are con- 
nected to 8K-byte 6264 static RAMs, 
ICs 7-10. This area is the RAM buffer 
for reading or writing EPROMs. IC6, 
addressed at 0000 hexadecimal, must 
be another 6264 RAM for BASIC-52 
to function. ICI I (2000-3FFF hexa- 
decimal) contains the programmer 
software and is intended for either a 
2764 or 27128. 

All together, 56K bytes of memory 
are defined on the CCSP if you use 
five 6264 RAMs (as ICs 6-10) and a 
27128 EPROM in ICI I. To use the pro- 
grammer, you need only the one 
RAM chip installed in IC6 (such a 
limited buffer area will require many 
passes to write or copy any large 









V PP /A15 



-PA 4) 











PIN #1 








+ 12V 


VCC /A 13 



~ — (IC12 






_ (IC12-PB2) 


( IC12 







PIN #28 





PIN #26 




2 PGM 



4 A14 











Figure 3: (a) Block diagram showing the connections to the ZIF socket. Note the level-shifter circuitry connections for those 
pins that require programming voltages or that differ across EPROM types. 

108 BYTE • OCTOBER 1986 


EPROM). The memory cannot be ex- 
panded since the rest of the address 
space is decoded as I/O. 

The address range of 6000-7FFF 
hexadecimal is divided into two I/O 
strobes at 6000 and 7000 through 
ICI 7. [Editor's note: For the remainder of the 
article, all addresses will be in hexadecimal] 
r IWo 82 55A-5 peripheral interface 
adapters providing three 8-bit I/O 
parallel ports each are controlled by 
a strobe line. The three I/O ports- 
labeled A, B, and C— and a write-only 
mode-configuration port on each 
82 5 5 occupy four consecutive ad- 
dresses at 6000-6003 (ICI 2) and 
7000-7003 (ICI 3), respectively. The 
ZIF socket and level-shifting circuitry 
outlined in figure 2 are connected to 
4 1 of these parallel I/O bits. The lines 
attached to ICI 2 (the control PIA) are 

used primarily for presetting the level 
shifters and providing the program- 
ming pulses. ICI 3 (the address and 
data PIA) supplies the address and 
data bus lines to the EPROM. Figure 
5 details the configuration and con- 
nection of the level shifters and power 

The CCSP communicates with a ter- 
minal or host computer through an 
on-board serial port. The port's data 
rate is hard-coded in the program 
ROM and is preset at 1200 bits per 
second, but you can reprogram it to 
any standard value between 300 and 
19,200 bps. (The 8052 AH chip has the 
capability for automatic data-rate 
selection on the console port. Be- 
cause the CCSP has both a local and 
a remote operating capability trig- 
gered by the GET command, the 

Power supplies with 
the required output 
are readily available, 
so I excluded an 
on-board supply to 
keep costs lower. 

automatic data rate cannot be used.) 
MCI 488 and MC1489 drivers/re- 
ceivers (ICs 14 and 15) convert the 
8052's serial I/O line TTL logic levels 
to RS-232. 




+ 12V 
@ 2 00 mA 

+ 5V • 
@ 800mA 

© 30 mA 

(b) CCSP power-distribution block diagram. 


PIN #28 



+12 V TO 




PIN #26 



f5V TO 


+5V TO +30V 



PIN #1 


PIN #22 




1 o 


PIN #23 



-12V TO 



ZIF PIN #28 

V C C 

ZIF PIN #26 V c 

■ /A13 


5V/ 12.5V/21V/0V 

V PP /A15 

ZIF PIN #22 OE/Vpp 


ZIF PIN #23 
5V/ 25V/0V 


OCTOBER 1986 -BYTE 109 

Figure 4: Circuit diagram of the CCSP's microcomputer section. 

110 BYTE • OCTOBER 1986 


Power for the CCSP is provided by 
an external supply that must deliver 
+ 12 V at 200 mA, +5 V at 800 mA, 
and -5 V to -12 V at 30 mA. Power 
supplies with these outputs are read- 
ily available on the surplus market, so 
I excluded an on-board supply to 
keep costs lower. In fact, a perfect unit 
is the Coleco computer power supply 
available from Radio Shack for $4.95 
(part #277-1022). 

Three V pp voltages must be con- 
tended with: 12.5 V, 21V, and 2 5 V. 
All are derived from the +30-V out- 
put of the DC-to-DC converter circuit 
shown in figure 5. IC24 is a 78S40 
switching regulator configured as a 
voltage multiplier. This circuit is 
capable of producing 30 V at 50 mA 
from a 5-V input. (For more informa- 
tion on this regulator and this specific 

circuit, see my November 1981 arti- 
cle, "Switching Power Supplies: An 

The user entry/display interface is 
shown in figure 6. It consists of a two- 
button entry panel through which you 
operate the programmer in local 
mode, a local/remote LED indicator, 
EPROM power-on indicator, and a 
seven-segment display through which 
the computer displays EPROM type 
and errors. To save I/O bits, I used a 
somewhat unorthodox display driver 
rather than the usual parallel port and 
seven-segment decoder configura- 
tion. The seven-segment LED is at- 
tached to an 8-bit shift register that 
has each output connected to drive 
an individual segment and the deci- 
mal point. To display a character, the 
seven-segment information is ex- 

tracted from a memory-resident table 
and quickly shifted into the shift reg- 
ister. Ordinarily, I wouldn't use such 
a software-intensive approach, but I 
didn't have to write the software. 

Programmer Software 

The CCSP is controlled by a program 
that is a combination of BASIC and 
8051 assembly language. The 
BASIC-52 program provides all ini- 
tialization and control functions, in- 
cluding local mode support and menu 
processing in the remote mode. The 
assembly language routines are used 
only where speed is critical, as in 
reading, comparing, verifying erasure, 
and programming EPROMs. In addi- 
tion, the Intel hexadecimal file upload 
and download routines are written in 


+ 12Vo- 

+12VDC I 

m L 


PIN #28 

825ft v 

1 o /fe Z 2N2222 


-12V o- 


T , 

^pO-22 M F )> . 


£ 120ft 



221ft - 'C20 

1% 3480ft 7407 

■VVV— — -^C U 

-^ ZIF PIN #28 



-< UC13-PB3) 

9470 ft 



I I O PIN #26 

I LM317 * -m ^ ZlF p| N #26 

1- ' > 221ft •-tn 1 ^ F 

A > 1% Ay 
1 2 N2222 /77 

p a Q)rQr 5vow/off < ,,cl2 " pB5, 

~* ' 4.7K X 

i I lo PIN # 1 


1% 665ft J 7407 

He 21 


1960ft I 

3480ft ^SJ 

1% k ^ 6 


-^ ZIF PIN #1 

5V ENABLE <(|C13 , pB0) 

-( (IC13-PB1) 


J^ 2N2222 Oz I 

I \^TX 2N2907 

— m — va — I 

4.7K n* 

<<bJ 21V ENABLE , (lC13 -PB2) 


-< (IC12-PB7) 


Figure 5: Detailed schematic of the programmer's level-shifting circuitry. 



When working in local 
mode, you can copy 
any 27xxxEPROM^ 
swapping the original 
and copy EPROMs 
multiple times. 

assembly language to keep up with 
the attached ASCII terminal device. 
Figure 7 outlines the CCSP software 
logic flow. 

The software that drives the CCSP 
is capable of running in two basic 
modes: local, where the CCSP acts as 
an EPROM copier controlled by but- 

tons, and remote, where the CCSP 
acts as a full-featured programming 
workstation serially connected to the 
user's terminal. When working in local 
mode, you can copy any 27xxx 
EPROM regardless of its size by swap- 
ping the original and copy EPROMs 
multiple times. The larger the RAM 
buffer is. the fewer times you will have 
to change the EPROMs. 

Power-up and Reset 

When the CCSP is first powered up or 
reset, its software configures itself for 
a 2716 EPROM. the default type. After 
setting up the hardware, the software 
outputs a in the seven-segment LED 
display to indicate the EPROM type, 
turns on the local mode LED. and 
sizes the RAM buffer. 

If no memory is located at 8000 (the 
buffer area), the CCSP allocates 4K 
bytes of system RAM in IC6 as the 

buffer area. If it is unable to ac- 
complish this, it will stop and display 
an alternating error code, E and 0, in 
the seven-segment LED display. Press- 
ing a button or sending a character to 
the serial port will force the CCSP to 
reattempt sizing memory (memory 
sizing is destructive). If you have RAM 
chips plugged into locations IC7 
through ICIO. this will provide addi- 
tional buffer memory. After memory 
is sized, the CCSP enters a loop to 
determine what mode you want the 
programmer to operate in. 

During the mode-setting loop, the 
CCSP will decide if it is going to run 
in local or remote mode. The mode 
selected is determined by which event 
occurs first: If one of the buttons is 
pressed first, the CCSP establishes 
local mode; if a character is detected 
at the serial port first (via the 
BASIC- 5 2 GET command), the pro- 


+ 5Vo- 

0.22ft 1/2WATT 

-AAA*— ■ — m 














10A ^k 470 ^ F 


5506 OR 


k 35V 




PIN #22 

221ft n /lC21 

!<& 665ft / 7407 

:Ti ' + J_ 

665ft / 7407 

50ft / ^ 

\ flO^Ill 1 

^ ZIF PIN #22 


FINABLE <(lcl3 _ pC0) 


3480ft | 
1% V 

Ji!lSfltL< ( ici3-Pcii 

-ii<<pJ 21V ENABLE <(iC13 _p C2) 

-<fl^^ 25V ENABLE < (|C13 . pC3) 

^<J IC20 N 


^ ( IC13-PA1) 

4120ft ^O^ 

1% 8 ^9 J 

(I <NAA> <d I 

^SJ IC20 

: ~ " \CrX2N2907 

• * WV ' 

4.7 K f" 




-^ ZIF PIN #23 

IC20 _L nni _ 

7407 ^tnO.OI^F 

2 ^X[l / ^ 7 5V ENABLE /.„, „ 
OJ — ( (IC13-PB4) 

Figure 5 continued. 

112 B YTE • OCTOBER 1986 


grammer enters remote mode. Once 
a mode has been selected, the CCSP 
must be reset or powered off/on to 
change modes. 

Stand-alone Local Mode 

In local mode, the CCSP is controlled 
by two buttons called 'type and Start/ 
Next. Displays to the user are made 
via the seven-segment LED display. 
When local mode is initially entered, 
or at any point between completed 
programming cycles, you can change 
the designated EPROM type by press- 
ing r fype. Each press of the button 
steps the CCSP to the next EPROM 
type, and the seven-segment LED dis- 
play is updated with the number that 
indicates the currently selected type. 
The designations are shown in table 1 . 

After setting the type of EPROM to 
work with, you begin the copy cycle 
by pressing Start/Next. At this point 
the seven-segment LED will display an 
alternating L and O, indicating that 
you should insert the original EPROM 
into the ZIF socket. You then load the 
original EPROM and press Start/Next 
again to begin the next step: reading 
the EPROM. 

When the CCSP has read as much 
of the EPROM data as the memory 
buffer will allow, it signals you to 
remove the original EPROM and in- 
sert the copy EPROM by displaying an 
alternating L and C on the seven-seg- 
ment display. After doing this, you 
again press Start/Next. 

The CCSP will now attempt to pro- 
gram the contents of the RAM buffer 
into the copy EPROM. After verifying 
that the target area of the copy 
EPROM is erased, the letter "P" is dis- 
played on the seven-segment display 
to indicate that programming is in 
progress (LED2 will be red, indicating 
that power is on to the EPROM and 
it should not be removed). When pro- 
gramming is complete, the contents 
of the EPROM are compared to the 
memory buffer contents. During this 
time, the letter "C" is displayed on the 
seven-segment display (LED2 will be 
green, indicating power off). 

If the target EPROM is not erased 
or the programming was not success- 
ful (bad compare), the seven-segment 
LED will display an alternating E and 
a numeral, either a I for an unerased 

target EPROM or a 2 for a failed com- 
parison. If an error does occur, you 
will be returned to the "between 
copies" state at the next press of the 

Assuming all went well, the CCSP 
checks to see if the entire EPROM has 
been copied. If it has, the CCSP 
returns to the "between copies" state 
and displays the current EPROM type 
selected on the seven-segment dis- 

If the entire EPROM has not yet 
been copied, the effective starting ad- 
dress of the RAM buffer will be incre- 
mented by the size of the RAM buf- 
fer, and the CCSP will prompt you to 
insert the original EPROM again. This 
time, the programmer reads ' the 
EPROM starting at the new address. 

The amount of data read will be either 
the RAM buffer size or the remaining 
bytes to be copied from the EPROM, 
whichever is less. After reading the 
original, the CCSP calls for the copy 
EPROM, and programming continues 
as described above. 

These steps will continue until the 
entire contents of the original EPROM 
have been transferred into the copy 
EPROM. Using this approach allows 
any size EPROM to be copied, regard- 
less of the amount of memory in the 
RAM buffer. 

Remote Mode Operation 

When used in remote mode, the CCSP 
turns into a menu-driven program- 
ming workstation, controlled by an 


(IC13-PA4) >- 




(IC13-PA5) >! 






330 ft 
3 TYP(8) 14 






(IC13-PC5) >- 

(IC13-PA6) >- 

(IC13-PA7) >- 

(IC13-PC6) >- 


Tl L220 





+ 5V 













(IC13-PC7) >- 





Figure 6: The CCSP's entry/display circuit. 

OCTOBER 1986 -BYTE 113 


All menus displayed 
on the terminal are 
generated by the CCSR 
A terminal-emulation 
program is the only 
software necessary to 
use this programmer. 

ASCII terminal. (See photo 2.) The 
data rate of the terminal must be 
hard-coded because the 8052 cannot 
automatically start the BASIC-52 pro- 
gram unless the data rate is defined. 
Using the automatic data-rate feature 
causes the 8052 to wait for a "space" 
character from the serial port before 
executing any program stored in it; 
this would eliminate the local mode 
of the CCSR The data rate is set at 
1200 bps, but you can change it to 
any standard value by reprogramming 
the system ROM with the default data- 
rate byte changed (details on this pro- 
cedure are included with the soft- 

All the menus displayed on the 
screen of the terminal or computer 
are generated by the CCSR No soft- 
ware other than a terminal-emulation 
program (if connected to a computer 
rather than a real terminal) is neces- 
sary to use this programmer. The 
remote mode menu provides the fol- 
lowing options: 

• read, compare, program, and verify 

• display and change RAM buffer 

• download and upload Intel hexa- 
decimal files 

• set EPROM type 

• set effective starting address of the 
RAM buffer 

The menu screens contain enough 
information to guide you through the 
use of most of these functions. Other 
pertinent information on the various 
options is given below. 

Read, compare, program, and verify 

EPROM all depend on the RAM buf- 
fer, and they usually use the effective 
starting address and the length of the 
RAM buffer to determine the area of 
the EPROM that is being worked with. 
Think of the RAM buffer as a window 
into the contents of the EPROM. If the 
RAM buffer is not large enough to 
show you the whole EPROM, you can 
move it around by changing its effec- 
tive starting address. 
Ljet's use an example. The EPROM 

type is a 27 512, which is 64K bytes, 
and the RAM buffer is 16 K bytes. It 
should be pretty obvious that you 
can't get the whole 27512 into the 
RAM buffer at the same time. In this 
case, you would set the starting ad- 
dress of the RAM buffer to 0000 to 
work with the first quarter of the 
EPROM and then set it to 4000 to 
work with the second quarter, 8000 
for the third, and C000 for the last. 







IF 2716 EPROM 



1. 2716 



■•! • 



Figure 7a: Flowchart I of the CCSP's overall logic flow, showing the power-up 
and reset routines. 

114 BYTE • OCTOBER 1986 


GRAM commands would use the 
starting address of the RAM buffer to 
see where to read data from or write 
data to the EPROM. The greatest 
length of the transferred data would 
be the size of the RAM buffer or the 
remaining number of bytes in the 
EPROM, whichever was smaller. 

Even though the VERIFY command 
does not care about the size of the 
buffer, its default start and end ad- 
dresses are controlled as described 

above. This is because VERIFY gen- 
erally precedes a programming cycle 
(you use VERIFY to confirm that the 
EPROM is properly erased), and the 
RAM buffer addressing controls pro- 
gramming default start and end ad- 

The following functions— display 
and change RAM buffer contents and 
download/upload Intel hexadecimal 
files— are also tied into the RAM buf- 
fer. Since the RAM buffer is supposed 

to mirror the equivalent area of the 
EPROM, displays, changes, and up- 
loads/downloads must be addressed 
to the RAM buffer, just as they would 
be in the real EPROM. This means 
that the software will reject addresses 
outside the range of the current RAM 
buffer area, which is especially impor- 
tant when doing uploads and down- 
loads. These loads must be broken up 
to fit into the current RAM buffer area 







Figure 7b: Flowchart 2, logic flow for the remote mode. 

OCTOBER 1986 -BYTE 115 


Table I: 

The CCSP's 

EPROM selection number and corresponding EPROM 

types. Note that this list is of generic EPROM types 

. and other 


designations should be 

cross-referenced to it. Also, since CMOS 


cycles are 

equivalent to those in standard EPROMs, 

separate 21Cxxx 

designations are not included. 



Type Number 




25 V 5 


21 V 



25 V 6 


12.5 V 



21 V 7 


12.5 V 



21 V 8 


12.5 V 



12.5 V 














Figure 7c: Flowchart 3, logic flow for the local mode. 

address range, 'frying to go outside 
the range will abort the display/ 
change/load processes. 

The remaining two functions— set 
EPROM type and set RAM buffer 
starting address— let you deal with 
various EPROM types and manipulate 
the starting address of the RAM buf- 
fer. Setting the RAM buffer address 
lets you change the location of the 
window into the EPROM. This should 
be necessary only if the size of the 
EPROM exceeds the size of the RAM 
buffer. Otherwise, there is no reason 
to change the starting address from 
its default value of 0000. 

Under the Covers 

In order to handle the various com- 
binations of sizes, programming volt- 
ages, and control lines used with dif- 
ferent EPROM types, the software in- 
corporates control tables. Four such 
tables are used in the CCSP: 

• system global table G(x) 

• LED character table L(x) 

• EPROM string table $[x) 

• EPROM data table E(x) 

System Global Table 

The system global table contains infor- 
mation about current values for critical 
system information. The table's entries 
are set up as is shown in table 2. 

The values for these items change 
based on the type of EPROM you are 
using, how much contiguous memory 
is at address 8000 (or the 4K bytes 
stolen from system RAM), and the last 
bytes written to the 82 5 5s. 

LED Character Table 

The seven-segment LED display is 
controlled by a serial-to-parallel shift 
register. In order to create a character 
in the LED, the bits for the various 
segments must be shifted out in the 
correct order. This table contains the 
LED code byte needed to create the 
characters that can be displayed (see 
table 3). 

EPROM String Table 

BASIC-52 does not allow the mixing 
of text and numeric data in the same 
table, so the ${x) string table function 
is used to store this information. This 

116 BYTE • OCTOBER 1986 


table contains the EPROM designator 
and the programming voltage used 
with that type of EPROM. Actually the 
programming voltage indicated in the 
table is only a reminder. You have to 
set the correct bits in the EPROM data 
table to ensure that the programmer 
uses the proper voltage. 

EPROM Data Table 

The EPROM data table contains all 
the information the system requires to 
work with the different EPROM types. 
The items in each record of the 
EPROM data table are shown in table 

Listing 1 illustrates how this is 
handled in BASIC. This data is main- 
tained for the use of both the BASIC 
and assembly language routines. 
BASIC passes data from the EPROM 
data table to the assembly language 
routines via the free registers of the 
8052 device. 

The Assembly Language 

The CCSP software is a hybrid of 
BASIC and assembly language. Be- 
sides reading and verifying, the 
EPROM programming pulses are ac- 
curately timed in assembly language 
routines. The derivation of the tim-. 
ing's accuracy is given in table 5. 

In Conclusion 

At first look, the CCSP appears to be 
considerably more complicated than 
my programmer of 18 months ago. I 
think at this point I can change my 
new description to more accurately 
state that "this programmer is a serial- 
port programmer that has the speed 
of lightning, the intelligence of the 
mightiest computer (on-board), and is 
far too functional to be used as a 
doorstop between uses." 

In actuality, only the explanation is 
more involved. With microcomputer 
intelligence, the CCSP achieves perfor- 
mance levels approaching kilobuck 
commercial units yet is flexible 
enough to be adapted to the next V pp 
change when it happens. 

I'm quite satisfied with my two-week 
miracle, but 1 still have to contend with 
a potential horde of builders. To make 
amends for my past indiscretion, 


Tkble 2: Contents of the system global table. 



Type number of the current EPROM. 

1 Amount of RAM buffer available in 256-byte increments. 


2 Current starting address of RAM buffer: 

3 Number of items in EPROM table entry. 

4 Reserved. 

5,6,7 Value of the last data byte written to IC12 address/data PIA 

(3 bytes, one for each port of the 8255). 

8,9,10 Value of the last data byte written to IC13 control PIA. 

11 Number of EPROM types in the EPROM string and data 


Table 3: 

Contents of the LED character table. 




Characters 0-9 (no decimal point) 


Characters A-F (no decimal point) 


Characters 0-9 (decimal point) 


Characters A-F (decimal point) 


Blanks LED 


Character H 


Character L 


Character P 


Character U 
















Photo 2: typical menu display presented when operating the serial EPROM 
programmer through a serial terminal or computer running in terminal-emulation 

OCTOBER 1986 -BYTE 117 

Inquiry 260 

Try It. 

Then Buy It. 


A fast, full-featured word 
processing package for the 
unbelievable price of $10. 
Complete. You get a manual 
on disk, mail merge, split 
screen, keyboard macros, 
on-screen formatting, full 
printer support, and more. 

Try PC-Write tor $10. 
Then register for $75 to get: 

• latest diskette 

• printed manual 

• two updates 

• phone support 

• newsletter 
Registration supports our 
"shareware" concept that 
keeps our prices low, and 
allows our development of 
PC-Write enhancements. 

Shareware means you can 
get PC-Write from a friend 
or user group to try, and 
give away copies yourself. 
Then register if you like it. 
No risk! ^ 


Oct 1986 

Version 2.7 

with built-in spelling checker, 
checks spelling as you type or 
afterward, guesses correct word. 
New manual, LaserJet support. 
New 2.7 registration price $89. 

Order PC-Write Today. 

Satisfaction Guaranteed. 

(206) 282-0452 
219 First N. #224y 
Seattle, WA 98109 


Table 4: Contents of the EPROM data table. 
Index Use 

Number of the EPROM. 

1 Size of the EPROM in 256-byte increments. 

2 The pin V cc is applied to, referenced to a 28-pin socket. 

3,4,5 The initialization values for IC13 control PIA's ports A, B, and C. 

6,7 The programming mode values for IC13's ports A and B. 

8 Logic true value of the programming pin (CE and PGM). 

9 Normal mode programming pulse width in milliseconds. 

10 Fast mode programming pulse in milliseconds (0 if no fast 

programming allowed). 

11 Maximum number of fast programming pulses before forced 

overprogram pulse occurs. 

12 Overprogram pulse multiplication factor. 

Table 5: 

Derivation of the timing for the CCSP's 1-ms timing 



Clock Periods 



of Execution 



EQU $ 














EQU $ 








EQU 227 




A— Assembler only, not executed 

C— Executed once per 1-ms count 

O— Executed only once per entry to subroutine 

L— Executed in each loop of the 1-ms 


Timing Calculations: 

1MS=11059.2 clock periods (clock is 11059200 Hz) 

11059.2 = 

24 + (24+24+24+24+24+24) 

+ N(12+12 + 24) 

11059.2 = 

168 + (N x 48) 

(11059.2 - 

168J/48 = N 

N = 226.9 (round to 227) 

Error for 1- 

ms pulse is 0.1 x 48 x (1/11059200) = 0.000443 



error for 100-ms pulse is: 



= 227.395 (use 227) 

0.395 x 48 x (1/11059200) = 0.00171 


118 BYTE • OCTOBER 1986 


Listing 1: The BASIC- 5 2 code to initialize the EPROM data table. 







DATA 2716 I 008H,026 I 0BBH I 061H I 001H I 008H I 000H I 001 I 050 I 000 I 000 I 000 

DATA 2732 , 01 0H , 026 , 0BFH, 05 1H, 001 ^008^000^000 ,050 ,000 ,000 ,000 

DATA 2732,010H,026,0BFH,051H,001H,004H,000H,000,050,000,000,000 

DATA 2764,020H,028,0BFH,014H,001H,000H,000H,000,050,001,025,003 

DATA 2764,020H,028,0BBH,012H,001H,000H,000H,000,050,001,025,003 

DATA 27128,040H,028,0BBH,014H,001H,000H,000H,000,050,001,015,004 

DATA 27128,040H,028,0BBH,012H,001H,000H,000H,000,050,001,015,004 

DATA 27256 , 080H , 028 , 0BBH , 052H , 00 1 H , 000H , 000H , 000 , 050 , 00 1 , 025 , 003 

DATA 27512,0100H,028,0BBH,051H,002H,000H,000H,000,050,001,025,003 


$(1)="2716 25V u 

25V " 

21V " 

21V " 


21V " 










there is indeed a printed circuit board 
and kit for this programmer. For those 
of you with the components at hand 
and a desire for wire-wrapper's cramp, 
the finished code for the programmer 
is available on a 27128 EPROM or is 
downloadable from the Circuit Cellar 
BBS and BYTEnet Listings. The phone 
number for BYTEnet Listings is (61 7) 
861-9764. This file contains the 12K 
bytes of executable code that should 
be put into a 27128 EPROM and in- 
stalled in ICI1. 

Circuit Cellar Feedback 

This month's feedback begins on 
page 58. 

Next Month 

Build the GTI80 professional graphic 
adapter for the SB180. ■ 

Special thanks to Bill Curlew for his software 

There is an on-line Circuit Cellar bulletin 
board system that supports past and pres- 
ent projects. You are invited to call and ex- 
change ideas and comments with other Cir- 

cuit Cellar supporters. The 300/1200/2400-bps 
BBS is on-line 24 hours a day at (203) 

Editor's note: Steve often refers to previous 
Circuit Cellar articles. Most of these past ar- 
ticles are available in book form from BYTE 
Books, McGraw-Hill Book Company, P.O. Box 
400, Hightstown, NJ 082 50. 

Ciarcia's Circuit Cellar, Volume I covers articles 
in BYTE from September 1977 through 
November 1978. Volume 11 covers December 
1978 through June 1980. Volume 111 covers July 
1980 through December J 981. Volume IV 
covers January J982 through June 1983. 
Volume V covers July 1983 through December 

The following items are available from 


P.O. Box 428 

Tolland. CT 06084 

1. Serial EPROM programmer experimenter's 
kit. Includes PC board, 8052AH-BASIC chip. 
11.05-MHz crystal, operating system software 
on preprogrammed 27128 EPROM, manual, 
and detailed parts list $89 

2. Complete serial EPROM programmer kit. 
Includes all board-mounted components, 
programmed 27128 EPROM, 80 52 AH micro- 
processor, and manual. Less case and power 

supply $199 

3. Preprogrammed 27128 EPROM contain- 
ing serial EPROM programmer system 
software $22 

The serial EPROM programmer is currently 
available only in kit form. It is available 
assembled and tested only in volume OEM 
quantities (telex: 643331). Price and delivery 
information available on request. 

All payments should be made in U.S. 
dollars by check, money order, MasterCard, 
or Visa. Surface delivery (U.S. and Canada 
only): add $5 for U.S., $10 for Canada. For 
delivery to Europe via U.S. airmail, add $20. 
Three-day air freight delivery: add $8 for U.S. 
(UPS Blue), $2 5 for Canada (Purolator over- 
night), $45 for Europe (Federal Express), or 
$60 (Federal Express) for Asia and elsewhere 
in the world. Shipping costs are the same for 
one or two units. Connecticut residents 
please include 7.5 percent sales tax. 

Most of the individual components are 
available from JDR Microdevices, 1224 South 
Bascom Ave.. San Jose, CA 95128, (800) 

To be included on the Circuit Cellar mail- 
ing list and receive periodic project up- 
dates and support materials, please cir- 
cle 100 on the Reader Service inquiry 
card at the back of the magazine. 



Dear Customer, 

Escort Refuses! 

From: Drew Kaplan 

Escort turned down our $10,000 head to head challenge described below. Escort says that Maxon's Radar Detector is 
"primitive", "bottom-end" and "an off-shore produced electronics 'gadget' ". I don't know about you, but to me these words 
conjure up visions of a cheap toy being produced off in the middle of a rice paddy somewhere in the middle of nowhere. 

Escort, on the other hand, which is 
made in the U.S., exudes a high cost, 
quality image. Don't you just bet that it 
costs a fortune to build Escort and Pass- 
port (the smaller version)? 

Well, we are going to challenge Es- 
cort AGAIN to a head to head 'duel to 
the death' on Maxon's electronic merits 
alone. And, we plan to win. But first 
there are a few things you should know. 

Cincinnati Microwave, the company 
that makes Escort & Passport, is a public 
company. And being public, they have to 
file financial information with the SEC. 

The public information they have pub- 
lished appears to show that in the year 
that ended Dec. 1 985, Cincinnati Micro- 
wave with "substantially all of its revenues 
and profits derived from the sale of radar 
warning receivers" made an operating 
profit of about $45,81 0,000 on sales of 
about $1 1 2,605,000. Wow! 

The $45 million profit is after all en- 
gineering, sellingand General &Admin- 
istrative expenses, but before taxes. 

Their cost of sales (goods) was only 
about $40,027,000. So, if you divide 
$40,027,000 by $1 1 2,605,000 it doesn't 
take a genius to figure out that cost of 
goods represents an average of only 
about 35.5% of selling price. Wow! 

I only bring up their profit to illustrate 
that a high retail price doesn't always 

WAS $10,000 

mean a high manufacturing cost. 

There's no question in my mind that 
Maxon can manufacture cheaper in an off- 
shore 'rice paddy', but if you pay $245 for 
Escort or $295 for Passport, it should be 
based on a head to head test with Maxon, 
not on perceived retail price points. 

So, forget that Escort costs $245, 
Passport $295, and Maxon $99 90 . Let's 
judge them on their own merits. And, 
let's look at just what Escort itself has to 
say about our challenge. (Please read 
DAK's and Escort's letters to the right.) 

Escort says that, "Regardless of the 
results, such an event lends credibility 
to the challenger." Well, they are abso- 
lutely correct. That's why I put up the 
$1 0,000 in the first place. Fair is fair. 

Plus, there are several radar detectors 
that claim to have won this or that rank- 
ing in "Independent Magazine Reviews." 
So, I'm ignoring any reviews and asking 
for a one on one, head to head test. 

But look at what Escort says in their 
letter: "Range is the easiest detector 
quality to measure, but by no means the 
only important quality." Wow, I thought 
range was really important?? Escort re- 
fers to "goodness" being determined by 
things not so easily measured. 

Well frankly, I don't know how to mea- 
sure "goodness". Escort, in my opinion, 

is a top notch company. They make a 
superb product I'd be proud to sell. And, 
they have great customer service. 

DAK has great toll free technical and 
regular customer service. But, I'd be the 
first to admit that with over $45 million 
in profits, Escort can probably run cir- 
cles around us in advertising, and may- 
be even in service. But, I don't think they 
can beat Maxon's Radar Detector. 

When Escort was introduced, it was 
revolutionary. But, you can only go so 
far. And in my opinion (someone else 
might object), radar detecting has gone 
about as far as itcan go. So, while Escort 
has made improvements, it's Maxon who 
has moved mountains to catch up. 

DAK UPs THE ANTE TO $20,000 

Now I realize that next to $45 million 
dollars, $20,000 isn't much, but it's a lot 
to DAK. And, I'll even go one step farther. 
I'll print the exact results of the test, win, 
lose, draw, or no-show in the first catalog 
I publish after January 1 , 1 987. 

Escort, the ball is now in your court. 
Below is the"NEW" version of my chal- 
lengewiththetime and amount changed. 

I don't know what else DAK or Maxon 
can do to prove that the RD-1 Superheter- 
odyne Detector should be judged on its 
head to head performance against Escort, 
not on its selling price! 

A $ tO,000 Challenge To Escort 

Let's cut through the Radar Detector Glut. We challenge Escort to a one on one Distance and Falsing 'duel to the 
death' on the highway of their choice. If they win, the $20,000 (was $10,000) check pictured below is theirs. 

By Drew Kaplan 

We've put up our $20,000 (was 10). 
We challenge Escortto take on Maxon's 
new Dual Superheterodyne RD-1 $99 90 
radar detector on the road of their choice 
in a one on one conflict. 

Even Escort says that everyone com- 
pares themselves to Escort, and they're 
right. They were the first in 1 978 to use 
superheterodyne circuits and they've got 
a virtual stranglehold on the magazine 
test reports. 

But, the real question today is: 1 ) How 
manyfeet of sensing difference, if any, is 
there between this top of the line Maxon 
Detector and Escort's? And 2) Which 
unit is more accurate at interpreting real 
radar versus false signals? 

So Escort, you pick the road (contin- 
ental U.S. please). You pick the equip- 
ment to create the false signals. And 
finally, you pick the radar gun. 

Maxon and DAK will come to your 
highway with engineers and equipment 
to verify the results. And oh yes, we'll 
have the $20,000 check (pictured) to 
hand over if you beat us by more than 1 
feet in either X or K band detection. 


Here's howit started. Maxon is a mam- 
moth electronics prime manufacturer. 
They actually make all types of sophis- 
ticated electronic products for some of 
thebiggest U.S. ElectronicsCompanies. 
(No, they don't make Escort's). 

Bob Thetford, the president of Maxon 
Systems Inc., and a friend of mine, was 
explaining their new RD-1 anti-falsing 
Dual Superheterodyne Radar detector 
to me. I said "You know Bob, I think 
Escort really has the market locked up." 
He said,"Ournew design can beat theirs". 

So, since I've never been one to be in 
second place, I said, "Would you bet 

$20,000 (10) that you can beat Escort?" 
And, as they say, the rest is history. 

By the way, Bob is about 6'9" tall, so if 
we can't beat Escort, we can sure scare 
the you know what out of them. But, Bob 
and his engineers are deadly serious 
about this 'duel'. And you can bet that 
our $20,000 (was $10,000) is serious. 
. . .Next Page Please 

. . .Challenge Continued 
We ask only the following. 1 ) The public 
be invited to watch. 2) Maxon's Engin- 
eers as well as Escort's check the radar 
gun and monitor the test and the results. 

3) The same car be used in both tests. 

4) We'd like an answerfrom Escort no 
later than December 31,1 986 and 60 
days notice of the time and place of the 
conflict. And, 5) We'd like them to come 
with a $20,000 (was $10,000) check 
made out to DAK if we win. 

into action in just 1/4 of one second. 

Just imagine the sophistication of a 
device that can test a signal 4 times in 
less than 1/4 of one second. Maxon's 
technology is mind boggling. 
But, using it isn't. This long range de- 
tector has all the bells and whistles. It 
has separate audible soundsf orX and K 
radar signals because you've only got 
about 1 /3 the time to react with K band. 

There's a 10 step LED Bar Graph Meter 
to accurately show the radar signal's 


Ok, so far we've set up the conflict. 
Now let me tell you about the new dual 
superheterodyne technology that lets 
Maxon leap ahead of the pack. 

It's a technology that tests each sus- 
pected radar signal 4 separate times 
before it notifies you, and yet it explodes 

strength. And, you won't have to look at 
a needle in a meter. You can see the Bar 
Graph Meter with your peripheral vision 
and keep your eyes on the road and put 
your foot on the brake. 

So, just turn on the Power/Volume 
knob, clip ittoyourvisororputitonyour 
dash. Then plug in its cigarette lighter 
cord and you're protected. 

And you'll have a very high level of 
protection. Maxon's Dual Conversion 
Scanning Superheterodyne circuitry 
combined with its ridge guide wideband 
horn internal antenna, really ferrets out 
radar signals. 

By the way Escort, we'll be happy to 
have our test around a bend in the road 
or over a hill. Maxon's detector really 
picks up 'ambush type' radar signals. 

And the keyword is 'radar', not trash 
signals. The 4 test check system that 
operates in 1/4 second gives you ex- 
tremely high protection from signals from 
other detectors, intrusion systems and 
garage door openers. 

So, when the lights and X or K band 
sounds explode into action, take care, 
there's very likely police radar nearby. 
You'll have full volume control, and a 
City/Highway button reduces the less 
important X band reception in the city. 

Maxon's long range detector comes 
complete with a visor clip, hook and 
loop dash board mounting, and the power 
cord cigarette adaptor. 

It's much smaller than Escort at just 
3 1 /2" Wide, 4%" deep and VA" high. It's 
backed by Maxon's standard limited war- 
ranty. Note from Drew: 1) Use of radar 
detectors is illegal in some states. 

2) Speeding is dangerous. Use this 
detectorto help keepyousafewhenyou 
forget, not to get away with speeding. 


Put this detector on your visor. When 
it sounds, look around for the police. 
There's a good chance you'll be saving 
money in fines and higher insurance 
rates. And, if you slow down, you may 
even save lives. 

If you aren't 100% satisfied, simply 
return it in its original box within 30 days 
for a courteous refund. 

To getyour Maxon, Dual Superheter- 
odyne, Anti-Falsing Radar Detector risk 
free with yourcredit card, call toll free or 
send your checkfor justSSS 90 ($4 P&H). 
Order No. 4407. CA res add tax. 

OK Escort, it's up to you. We've got 
$20,000 (10) that says you can't beat 
Maxon on the road. Your answer, please? 

Escort and Passport are registered trademarks of Cincinnati Microwave. 



Call Toll Free For Credit Card Orders Only 

24 Hours A Day 7 Days A Week 


For Toll Free Information, Call 6AM-5PM Monday-Friday PST 

Technical Information. . . .1-800-272-3200 

Any Other Inquiries 1-800-423-2866 

8200 Remmet Ave., Canoga Park, CA 91304 



by Jonathan Amsterdam 

How to avoid the dangers 
of allocating memory 

The term "storage al- 
locator" is an instructive 
misnomer, for the com- 
plexity of such a system 
lies not in allocating 
storage but in reclaiming 
it. If computer memories 
were arbitrarily large, storage allocation 
would be trivial. Because they aren't, the 
process can be complicated. 

I will discuss four storage allocators. The 
first, the basic allocator, uses standard 
algorithms and is quite common, appear- 
ing in many implementations of program- 
ming languages that provide storage alloca- 
tion, like Pascal, C, and Modula-2. The other 
three are all attempts to correct the prob- 
lems of the first. | Editor's note: The four allocators 
in Modula-2 source code, along with their driver pro- 
grams, are available on disk, and on BIX. The 
filenames are as follows: ALLOC.DOC (a "read- 
CHINES.DEF See the insert card after page 320. 
Listings are also available on BYTEnet. See page 4.| 

What Is Storage Allocation? 

All useful programs need storage to go 
about their business. A program could not 

accomplish much if it didn't use variables, 
and variables occupy space in the com- 
puter's memory. Many programs can get by 
with a fixed amount of storage, an amount 
determined when the program is written 
and compiled. Most FORTRAN programs fit 
into this category. Other programs need to 
allocate storage while they are running but 
can get by with a stack-based allocation 
scheme like that provided by many high- 
level programming languages— for example, 
a Pascal program that contains procedures 
with local variables. Some programs, how- 
ever, not only need to acquire additional 
storage while running but also cannot de- 
allocate that storage in the last-in, first-out 
manner demanded by a stack. Furthermore, 
they may require many pieces of storage of 
different sizes. 

For example, the SIMPL compiler I 
presented in the December 1985, January 
1986, and February 1986 issues of BYTE ("A 
SIMPL Compiler," parts 1. 2, and 3) must 
allocate storage for parse trees and symbol 
table records. These objects must exist for 
long periods of time, across the execution 
of many procedures, and may be deallo- 
cated in an order different from that in 

\onathan Amsterdam is a graduate student at the 
Massachusetts Institute of Technology Artificial In- 
telligence laboratory. He can be reached at 1643 
Cambridge St. #34, Cambridge. MA 02138. 


OCTOBER 1986 -BYTE 123 


which they were allocated. So a stack- 
based scheme is inadequate. Some- 
thing more general is needed: a pro- 
gram that allows the allocation and 
deallocation of memory parcels of 
various sizes in any order. For the pur- 
poses of this article, such a program 
is called a storage allocator. 

The Abstract Storage 

A storage allocator is a program that 
manages a contiguous region of 
memory called the heap. It allocates ar- 
bitrarily sized, contiguous segments 
of the heap, called blocks, when asked 
to do so by other programs in need 
of storage. The storage allocator also 
allows these programs to deallocate, 
or free, blocks that they no longer 
need. To these basic facilities, I add 
the ability to examine and change any 
location inside an allocated block. If 
you call the minimal unit of storage 
a word, you can characterize a stor- 
age allocator in the abstract as com- 
prising these four operations: 

• allocate: takes the number of words 
to allocate as an argument and 
returns either a block of the appropri- 
ate size from the heap or an indica- 
tion that no block that size is avail- 

• free: takes a block as an argument 
and returns it to the heap for reuse. 

• getWord: takes a block and a 
number n as arguments and returns 
the nth word of the block. (By conven- 
tion, the block's contents are 
numbered from to one less than the 
size of the block.) 

• setWord: takes a block, a number n, 
and a word w as arguments and sets 
the nth word of the block to w. 

The Basic Allocator 

The first allocator organizes the heap 
as a linked list of available blocks 
called the free list. When a program 
requests storage, the allocator 
searches the list for a large enough 
block. If it finds one, the allocator 
removes the block from the list and 
returns a pointer to it to the request- 
ing program. If no available block is 
large enough, the allocator returns a 
NIL, or empty, pointer. When a pro- 
gram frees a previously allocated 
block, it is returned to the free list. 

This scheme, with minor variations, is 
used by many extant storage al- 

For the scheme to work, each block 
must contain certain information. In 
my implementation, all blocks, 
whether free or allocated, contain a 
size field as their first word. The size 
is simply the number of words oc- 
cupied by the block, not including the 
size field itself. So, for example, if a 
block has a size of six, it actually oc- 
cupies seven words of memory. You 
can obtain the size of a block by call- 
ing the blockSize function, which 
takes a pointer to the block as its 

When a block is allocated, all of it 
except the size field is available for 
use through the setWord and getWord 
procedures. When a block is not al- 
located, part of its space is used to 
hold a pointer to the next free block 
in the free list. (If a block is the last 
one in the free list, its pointer is NIL.) 
The number of words occupied by 
this pointer is the smallest allowable 
block size you may have; any request 
for a smaller block will receive one of 
this size. In my implementation, the 
minimum block size is two words 
because Macintosh pointers are two 
words long (on other microcom- 
puters, a pointer can fit in a single 
word). Hence, in my implementation, 
the smallest block actually occupies 
three words of memory: one for the 
size and two for the pointer. 

Initially, the free list contains a single 
block, which constitutes the entire 
heap. As blocks are allocated, the ini- 
tial free block is broken up; when 
allocated blocks are freed, they are 
added back onto the free list. When 
a program requests a block of storage, 
the allocator chooses one from the 
list to satisfy the request. If the block 
is just the right size, it is spliced out 
of the free list and returned to the 
program. However, if the block is 
larger than the amount of storage re- 
quested, it is split into two blocks: 
One is the requested size and is 
returned; the other is put on the free 

The chosen block may be only 
slightly larger than the request. In par- 
ticular, it may be small enough so that 
after splitting, the remaining portion 

is too small to form a block of its own. 
For instance, if a program requests 10 
words and the chosen block has a size 
of 12, the block cannot be split, since 
the two words remaining are not 
enough to form a block. In this case, 
the allocator returns the entire chosen 

There are several possible strategies 
for choosing a block of storage. In the 
best-fit strategy, the allocator searches 
the free list from beginning to end 
and chooses the block whose size 
comes closest to the request without 
being too small. While this scheme re- 
quires searching the entire free list, it 
seems likely to make a good choice. 
However, if the chosen blocks are 
often slightly larger than the requests, 
then many small blocks are left on the 
free list. The allocator may then be 
unable to satisfy a request, not 
because there isn't enough storage in 
the heap, but because the storage is 
distributed among many different 
blocks, each of which is too small. 
This is called fragmentation. 

In an effort to reduce fragmentation, 
you might use the worst-fit strategy- 
choosing the largest block on the free 
list. Another strategy, called first-fit, 
chooses the first block on the list that 
is big enough to satisfy the request. 
And Donald Knuth has proposed a 
next-fit strategy, which is similar to 
first-fit except that on subsequent re- 
quests, the search for a suitable block 
resumes from where it left off during 
the prior request instead of starting 
again from the beginning of the free 
list (see reference 1). 

A lot of experiments have been 
done to see which of these methods 
allocates blocks most rapidly and 
results in the least amount of memory 
fragmentation. And the consensus on 
which one to use is that it depends. 
It depends on the order of allocation 
and deallocation, the size of the 
blocks allocated, and goodness 
knows what else. One thing's for sure, 
though: I. Robson has shown that for 
any allocation scheme that does not 
move blocks around in the heap to 
reduce fragmentation, there exists a 
sequence of allocations that will result 
in a request being made that cannot 
be satisfied due to fragmentation (see 
reference 2). Even if the sequence 

124 BYTE • OCTOBER 1986 


consists only of requests for one- word 
and two-word blocks, the allocator 
can fail when memory is only two- 
thirds full. So all the methods have the 
same worst-case behavior. (Moving 
blocks around in the heap is not feasi- 
ble for the basic allocator because the 
program allocating storage may have 
pointers to the blocks.) 

The conclusion I draw is this: Unless 
you have a particular application in 
mind and understand its allocation 
pattern well it doesn't much matter 
which strategy you choose. I have 
chosen first-fit for my basic allocator, 
since it is the easiest strategy to im- 
plement and has the undeniable ad- 
vantage that it cannot possibly take 
longer to allocate a block than best- 
fit or worst-fit. 

To deallocate, or free, a block, you 
could simply add it to the front of the 
free list. The speed of this process is 
hard to beat— two machine instruc- 
tions on many computers— but it has 
a disadvantage. If two blocks occupy- 
ing adjacent regions of memory have 
been freed, you want to merge them 
into a single block to reduce fragmen- 
tation, if you add freed blocks to the 
front of the free list, there is no easy 
way of checking for adjacency without 
searching the entire free list. You can 
do it if you incorporate more informa- 
tion into each block, but each word 
used in bookkeeping is a word denied 
the user. My method sacrifices time 
for space. 

I maintain the free list in order of in- 
creasing addresses, so that the first 
block on the free list has the lowest 
address of any free block. When a 
program frees a block, the allocator 
traverses the free list until it finds the 
right spot for insertion. It is easy to 
check for adjacency now because the 
only candidates are those blocks on 
the list immediately before and after 
the insertion point. Using the size 
fields of the blocks and their ad- 
dresses, it is easy to calculate if block 
boundaries coincide and the blocks 
can be merged. 

The algorithm for this method is 
summarized in the text box "Algo- 
rithm for the Basic Allocator" above. 
The scheme is simple to implement, 
versatile, and has a minimum of over- 
head. But I come to bury the basic al- 


for the Basic Allocator 

1 nitially: set the free list to point to a block consisting of the entire heap. 

allocate: takes as argument the number 

being freed. Let a be the block 

of words to allocate: returns a pointer 

ahead of b on the free list. 

to a block with at least that many 

Put / onto the free list between a and 

words if it can find one: returns NIL if 


it fails. 

If / and b are adjacent, merge them 


into a single block. 

If there are no blocks big enough to 

If / and a are adjacent, merge them 

satisfy the request, fail. 

into a single block. 

Otherwise, choose the first block b 


big enough to satisfy the request. 

If the block is big enough to split. 

getWord: takes a pointer to a block b 


and an offset n as arguments: returns 

split the block into two parts: c 

the nth word of b. starting from 0. 

with the requested number of 


words and d with the re- 

If n < or w > size of b, then error. 

mainder: put d on the free list, 

Otherwise, add n to the address of 

and return c. 

b to index the nth word, and return 

Otherwise, remove b from the 

the word. 

free list and return it. 



setWord: takes a pointer to a block b. 

an offset n. and a word w as arguments. 

free: takes a pointer to a block / as 



If n < or n > size of b. then error. 


Otherwise, add n to the address of 

Search the free list from the begin- 

b to index the nth word, and store 

ning until reaching a block b whose 

w in the word. 

address is larger than the one 


locator, not to praise it, for it has a 
serious flaw. The problem is the well- 
known dangling reference. For exam- 
ple, let's allocate a block and copy its 

newPtr := allocate(10); 
copiedPtr := newPtr; 

and then free the block by using free 
(newPtr). Even if the free procedure 
invalidates newPtr (by setting it to 
NIL, perhaps), copiedPtr still points 
to the freed block. It is possible for 
the program to use copiedPtr to ac- 
cess a deallocated block. You can 
avoid this by providing a bit in each 
block indicating whether or not it is 
free and by modifying getWord and 
setWord so that they detect accesses 
to a freed block and signal an error. 

But the real trouble occurs when the 
block is reallocated. Then copiedPtr 
can do some real damage, by chang- 
ing portions of a block it shouldn't be 
pointing to, a block that may even 
belong to a different application. 

I take this dangling reference prob- 
lem very seriously. Many program- 
mers think it is a minor nuisance that 
must be endured for efficiency's sake. 
I disagree. I expect programming lan- 
guages to do their utmost to protect 
me from myself— from the many 
stupid errors I am bound to commit 
when I program. Modern program- 
ming languages like Modula-2 have 
gone a long way in this direction, but 
storage allocation is still an area 
where they provide more than 


OCTOBER 1986 -BYTE 125 


enough rope to hang yourself. The 
rest of the article examines ways to 
shorten the rope. 

The Tombstone Allocator 

One solution to the dangling refer- 
ence problem is never to reallocate a 
block once you have freed it. This is 
a little extreme, but a related solution 
might be worth exploring. When a 
block is freed return all but its first 
word to the free list. Put a special 
value in the first word so that getWord 
and setWord can recognize it if an il- 
legal access is made. I call these one- 
word markers tombstones. Tombstones 
are never freed; they are always there, 
ready to catch references to blocks 
that no longer exist. 

You can easily modify the basic 
allocator to use tombstones. When a 
block is freed, you put all but its first 
word— the one containing the block's 
size— on the free list. Then you set the 
first word to zero. When getWord and 
setWord are called, they check the 
block's size field and signal an error 
if it is zero. 

The tombstone scheme is simple to 
implement, but it too has a serious 
fragmentation problem. Each tomb- 
stone is an unreclaimable piece of 

storage in the middle of the heap. Ad- 
jacent freed blocks, which might have 
been merged by the basic allocator, 
can't be merged because of the inter- 
vening tombstones. You end up litter- 
ing the heap with tombstones. 

The Indirect Approach 

The dangling reference problem 
arises in the first place because 
several copies of a block's pointer 
may exist. You could avoid the prob- 
lem altogether if you could ensure 
that only one pointer to a block would 
ever exist. It's unreasonable to de- 
mand that pointers never be copied, 
and you couldn't enforce it anyway, 
but there is another way. When a pro- 
gram makes a request for a new 
block, the storage allocator allocates 
both the block and a pointer to it, 
called the master pointer. The al- 
locator then returns a pointer to the 
master pointer, or a handle, rather than 
a pointer to the block itself. 

Adding this extra level of indirection 
goes a long way toward solving the 
dangling reference problem. You can 
make as many copies of the handle 
as you want, but all references to the 
block go through the master pointer. 
When a block is freed, the allocator 



Block 1 

Block 2 

Block 3 

Master pointers 

Block 1 

Block 2 

Block 3 

Master pointers 





Figure 1: Compacting the heap: (a) shows the heap before compaction: (b) after 

adds it to the free list and sets its 
master pointer to a special value, say 
NIL. The allocator can then catch any 
subsequent references to that block. 
When the block is reallocated, a new 
master pointer is used. The technique 
is reminiscent of tombstones, but with 
one important difference: Master 
pointers need not be allocated in the 
middle of the heap. In my implemen- 
tation, I start allocating master 
pointers from the top of the heap, and 
I try to confine them to a contiguous 
region. Blocks, meanwhile, are al- 
located from the bottom. The severe 
fragmentation problem of tomb- 
stones does not arise. 

If this were the only benefit of dou- 
ble indirection, as the method is 
sometimes called, it would be worth 
implementing. However, since the 
storage allocator knows about all the 
pointers into the heap— the master 
pointers— it can play a couple of other 
useful roles as well. For one thing, the 
allocator can enable you to change a 
block's size, making it grow or shrink 
as you wish. To do this, the allocator 
allocates a new block of the desired 
size, copies the contents of the old 
block into it, and changes the master 
pointer to point to the new one. Any 
handles now reference the new block, 
and the original block appears to have 
magically changed its size. 

More important, the allocator can 
perform compaction of the heap. 
Because it has the only direct access 
to the master pointers, the allocator 
is free to move blocks around in the 
heap. In particular, it can implement 
the following simple algorithm: First, 
find the allocated block with the 
lowest address (easily determined by 
scanning the list of master pointers). 
Copy the contents of this block to the 
bottom of the heap and update its 
master pointer to point to the new 
location. Then find the second-lowest 
block in the heap and move it to just 
after the first block. Do the same for 
all the allocated blocks. The result is 
a heap free of fragmentation with the 
allocated blocks at the low end, the 
master pointers at the high end, and 
the middle free. Figure 1 shows before 
and after pictures of a compacted 
heap. If you want, you can compact 


126 BYTE • OCTOBER 1986 

Actual image on Sony CPD-1302. 

Look at the picture. It's got to be a Sony. 

25 years have gone into the making 
of this picture. 

Every Sony advance in the quality 
of your TV picture has been applied to the 
improvement of your computer picture. 

That's why a Sony monitor is so clearly 
superior to other monitors. And that's why 
you can get a brighter; sharper picture for 
your computer the same way you'd get 
one for your home. Ask for a Sony 

Why the leading name in living 
rooms is about to become the leading 
name in offices. 

The monitor you see above, the CPD- 
1302, is Sony's newest 13" Multiscan™ 
Monitor, with an actual image generated 
on it using an IBM® AT 

Its advantage is that it works with 
CGA f EGA and even PGA graphics cards. 
So, with Sony you'll not only have daz- 
zling high-resolution graphics, you'll have 
a monitor that won't become obsolete. 

But other Sony monitors have the same 
impressive .25mm Super-Fine Pitch™ 


9" High-Resolution 

Sony CPD-120! 

12" High-Resolution 

Sony CPO-1310 

13" Medium-Resolution 

Sony KV-1311CR 

KTCombination Computer 

Sony KV-2011CR 

20" Combination Computer 
Monitor /Receiver 

Sony KV-2511CR 

25" Combination Computer 


100" & 200" Multiscan Video Projector 

Aperture Grille, giving them the highest 
resolution of any monitors in their class. 

Only Sony could give you 9 clear 
choices for better monitors. 

Only Sony could improve office 
images from desks, to conference rooms, 
to office auditoriums. 

Because only Sony makes color moni- 
tors from 9" to 25" plus Multiscan Video 
Projectors that display computer images 
on 100" and 200" screens, with astonish- 
ing resolution. 

And Sony has an answer for those of 
you who take your computer work home, 
too. We offer you monitors that are also 
remote-control Sony TVs. 

The bottom line is this: in business, 
everyone wants to see a brighter picture. 
In monitors, the brightest picture comes 
from Sony. 

To find out more, call Sony at 1-800- 
222-0878 (in N.J., 1-800-222-0879). 

Trinitron Computer Monitors 



'c> 1986 Sony Corporation of America. Sony, Trinitron, Multiscan, Super-Fine Pitch and The One and Only are trademarks of Sony. IBM is a registered trademark of International 8usiness Machines Corp. 
Because the computer industry lacks standards. Sony does not and cannot make any warranty or representation with respect to performance of its monitors with each and every software or hardware option. 

Inquiry 284 




Algorithm for the Double- 

Indirection Allocator 


nitially: Set aside room at the top of the heap for master pointers. Set the free list to point to a block consisting 

of the rest of the heap. 



resize: takes a handle h and a new size 



n as arguments. 

Allocate a master pointer m. getting 

Let / be the bottom of the heap. 


a handle to it, k If no master 

While there is an allocated block 

Allocate a block b of size n as in the 

pointer can be allocated, fail. 

that is higher in the heap than 1: 

basic allocator. If none is found, do 

Allocate a block b as in the basic 

copy the lowest such block, b, to I; 


allocator. If none is found, com- 

update b's master pointer to point 

If a block b is found, then 

pact heap, and try again. If there 


let m be the master pointer that h 

is still not enough room, fail. 

set I to the address just after b. 

points to: 

Set m to point to b and return k 

Set the free list to point to the re- 

copy the block pointed to by m 


maining free space. 

into the new block b: 


set m to point to b. 

allocate master pointer: returns a han- 


dle {a pointer to a master pointer). 

free: takes a handle as argument. 



getWord, setWord: as in the basic 

If there is room in the master pointer 

Let m be the master pointer that the 

allocator, but take a handle instead of 

area, allocate space for another 

handle points to. 

a pointer. 

master pointer, and return a 

Free the block that m points to as in 


pointer to it. 

the basic allocator. 

If the master pointer that the handle 

Otherwise, compact the heap. 

Set m to NIL 

points to is NIL, then error. 

If there is now room to extend the 


Otherwise, access the block as in the 

master pointer area, then extend 

basic allocator, using the master 

it, allocate a master pointer, and 


return a pointer to it. 


If there is no room left, fail. 

the heap every time a block is freed, 
thereby making a free list unneces- 
sary. But since compaction can be ex- 
pensive, it is probably better to use 
the free-list method, saving compac- 
tion for the time when a storage re- 
quest can't be filled. 

The algorithm for this method is 
shown in the text box "Algorithm for 
the Double-Indirection Allocator" 
above. Macintosh programmers will 
recognize the scheme as a subset of 
the Macintosh memory manager. The 
Macintosh allocator allows reuse of 
master pointers, though, so it's not as 
safe as this one. 

There are two problems with my im- 
plementation of the double-in- 
direction technique. The first is im- 
plicit in the name: An extra indirec- 
tion (memory reference) must be per- 
formed for every access to a block. 
Furthermore. getWord and setWord 

have to check for a NIL master 
pointer on every access. You could do 
away with this check, but then an at- 
tempt to dereference the NIL pointer 
will make the program crash. If the 
allocator checks explicitly, it can die 
gracefully and provide information 
about the error, but even an uninfor- 
mative crash is better than no check 
at all. Another way to reduce the over- 
head of double indirection is to hand 
out pointers to the blocks themselves, 
rather than to master pointers, if 
specifically requested to do so. This 
feature should be used only where 
speed is of the utmost importance, 
and you should check carefully to be 
sure that no invalid copies of this 
direct pointer are created. If there is 
a chance that the allocator will per- 
form a compaction while the pointer 
is in a programmer's hands, then the 
allocator must provide a facility for 

locking a block in place so that it is 
not moved during a compaction. Pro- 
viding direct pointers to blocks com- 
promises the safety of the allocator, 
so I don't recommend it unless the 
application truly requires it. 

The second problem with my dou- 
ble-indirection scheme is more 
serious. You can't reclaim a master 
pointer; once it's allocated, it's there 
for good. It can't even be reused. So 
every new allocation decreases the 
heap size by the length of one 
pointer. The list of master pointers will 
march relentlessly from the top of the 
heap to the bottom, bringing the al- 
locator to a suffocating halt. 

The Capability-based 

My fourth and final allocator attempts 
to get around the problem of nonre- 


128 BYTE • OCTOBER 1986 

FOR ONLY $9.95! 

When you join the 

Library of Computer and Information Sciences. 

You simply agree to buy three more books— ot handsome discounts— 
within the next 12 months. 

7,300 authored articles by the world's 
leading scientists 

Combining the accessibility of a dic- 
tionary with the thoroughness of a 
full-length encyclopedia, the 
TECHNOLOGY brings the forefront 
of scientifi c research to your fingertips. 
World-renowned experts— from such 
acclaimed computer science institu- 

• a 2,000-page treatise worth $95.00 

• more than 7,300 alphabetically arranged, 
cross-referenced articles 

• 1,600 illustrations and line drawings, many in 
two colors 

• a 30,000 entry index 

• measurements in both US and SI units 

• comprehensive bibliographic and data base 

• membership to the oldestond most respected 
computer book club 

tions as Carnegie-Mellon University 
and Burroughs Corporation— share 
their definitions, explanations, in- 
sights, and opinions on such topics as: 

• artificial intelligence and expert 

• computer graphics 

• database management 

• programming languages 

• real-time systems 

• simulation 

• software engineering 

• and much more, covering virtually 
every aspect of science and 

\bu also get 

• Bibliographies and Data Bases- 
documenting hundreds of books and 
journals arranged by subject category, 
as well as 81 of the leading scientific 
data base systems 

• Appendices— containing measure- 
ment systems and conversion tables; 
mathematical signs, symbols, and no- 
tations; fundamental constants; chem- 
ical elements listed both alphabetically 

and on a periodic table; semiconductor 

and electronic symbols; etc. 

• A 30,000 Entry Index— providing 

you with easy accessto the information 

you need. 

And all this is yours for just $9.95 when 

you join . So send for your copy today. 

The Library of Computer and Infor- 
mation Sciences is the oldest and larg- 
est book club especially designed for 
the computer professional. In the in- 
credibly fast-moving world of data 
processing, where up-to-date knowl- 
edge is essential, we make it easy for you 
to keep totally informed on all areas of 
the information sciences. 
Begin enjoying the club's benefits 

4 Good Reasons to Join 

1. The Finest Books. Of the hundreds of 
books submitted to us each year, only the 
very finest are selected and offered. More- 
over, our books are always of equal quality 
to publishers' editions, never economy 

2. Big Savings. In addition to getting the 
McGraw-Hill Concise Encyclopedia of 
Science & Technology for only $9.95 when 
you join, you keep saving substantially, up 
to 30% and occasionally even more. (For 
example, your total savings as a trial mem- 
ber—including this introductory offer- 
can easily be over 50%. That's like getting 
every other book free!) 

3. Bonus Books. Also, you will immediate- 
ly become eligible to participate in our 
Bonus Book Plan, with savings of up to 65% 
off the publishers' prices. 

4. Convenient Service. At 3-4 week inter- 
vals (16 times per year), you will receive the 
Library of Computer and Information 
Sciences News, describing the Main Selec- 
tion and Alternate Selections, together 
with a dated reply card. If you want the 
Main Selection, do nothing, and it will be 
sent to you automatically. If you prefer an- 
other selection, or no book at all, simply 
indicate your choice on the card and return 
it by the date specified. You will have at 
least 10 days to decide. If, because of late 
mail delivery of the News, you should re- 
ceive a book you do not want, we guarantee 
return postage. 

If reply card has been removed, please write to: The 
Library of Computer and Information Sciences, Dept. 
7-DS3-6162, Riverside, N.J. 08075 to obtain member- 
ship information and an application. Byte 10/86 

OCTOBER 1986 -BYTE 129 


Algorithm for the 
Capability-based Allocator 

' nitially: Set aside room at the top of the heap for master pointers. Set the free list of point to a block consisting 
.of the rest of the heap. Set the master pointer free list to NIL. 

allocate: returns a capability c. 

Allocate a master pointer m, getting 
a handle h. If none is found, fail. 
Allocate a block b as in the basic 
allocator. If none is found, com- 
pact the heap and try again. If 
there is still not enough room, 
Set m to point to b. Set c's handle 
to h. Set c's generation count to. 
m's generation count 
Return c. 

allocate master pointer: returns a han- 
dle (a pointer to a master pointer). 
If the master pointer free list is not 
empty (NIL), remove the first 
master pointer on the list and 
return it. 
If the master pointer area has room, 
allocate space for another master 
pointer, set its generation count to 
zero, and return a pointer to it. 

Otherwise, compact the heap. 

If there is now room to extend the 
master pointer list, then extend the 
list, allocate a master pointer, set its 
generation count to zero, and 
return a pointer to it. 

If there is no room left, fail. 

compact: as in the double-indirection 

free: takes a capability as argument. 

If the generation count of the capa- 
bility does not equal that of the 
master pointer that the capability 
points to, then error. 
Otherwise, free the block as in the 
basic allocator; increment the 
master pointer's generation count; 
add the master pointer to the 
master pointer free list. 


resize: as in the double-indirection 

allocator, but takes a capability instead 

of a handle. 

If the generation count of the capa- 
bility does not equal that of the 
master pointer that the capability 
points to, then error. 
Otherwise, proceed as in the double- 
indirection allocator. 


getWord, setWord: as in the basic 

allocator, but take a capability instead 

of a pointer. 

If the generation count of the capa- 
bility does not equal that of the 
master pointer that the capability 
points to, then error. 
Otherwise, access the block as in the 
basic allocator, using the master 


usable master pointers. It uses dou- 
ble indirection, but instead of pro- 
viding a handle to a block, it returns 
a capability. A capability uniquely iden- 
tifies the block; no two blocks ever 
have the same capability, not even if 
they occupy the same part of mem- 
ory. When a block is allocated, a 
unique capability is associated with it. 
When the block is freed, the capa- 
bility becomes invalid. Any block 
subsequently allocated, even if it 
comprises memory from the old 
block, will have a different capability. 
A capability consists of a handle 
and a nonnegative integer that is a 
generation count. Each master 
pointer has its own generation count. 
When a new master pointer is al- 
located, its generation count is zero. 
When a block is allocated and as- 
sociated with a master pointer, a 
capability is returned to the re- 

questing program. That capability 
consists of a handle and the master 
pointer's generation count. When the 
allocator frees a block, it increments 
the generation count of that block's 
master pointer. When getWord or set- 
Word accesses a block, it checks the 
generation count of the capability 
against that of the master pointer. If 
they are not the same, access is 
denied. The algorithm for this process 
is shown in the text box 'Algorithm 
for the Capability-based Allocator" 

In addition to the advantages of the 
double-indirection scheme, the capa- 
bility-based method allows reuse of 
master pointers. When a block is 
freed, its master pointer can be linked 
into a second free list that is used for 
master pointers only. There is nothing 
to worry about when you reuse the 
master pointer because the safety 

checks are performed with the gen- 
eration count, not with the value of 
the pointer. 

When the generation count ap- 
proaches an overflow condition, the 
simplest thing to do is to abandon the 
master pointer just before the over- 
flow happens. When the allocator 
frees a block, it increments the master 
pointer's generation count, but if the 
new value is the largest possible value 
for the counter, the allocator does not 
link the master pointer into its free list. 
This pointer will never be reused, but 
the generation count will still work to 
prevent access. The space occupied 
by the abandoned master pointer is 
wasted, but overflow should be a rare 
occurrence if you provide a large 
enough generation counter. 1 provide 
16 bits, which makes overflow very 
unlikely unless the allocating program 
runs for days on end. 

130 BYTE • OCTOBER 1986 


You may wonder if you can imple- 
ment the capability scheme with only 
a single indirection. Why not let a 
capability contain a pointer to the 
block, instead of a pointer to a master 
pointer? The problem then becomes 
where to put the block's generation 
count. You can't put it with the block, 
because it must remain even when 
the block is freed; you would have a 
variant of the tombstone allocator in 
which the merging of adjacent blocks 
is impossible. If you put the genera- 
tion count somewhere else, you 
would basically have a second level 
of indirection. This might work, but I 
don't see how it would be superior to 
the capability scheme described here. 

A minor implementation problem 
arises that illustrates an important 
technique. A capability is larger than 
a pointer: It is in fact a pointer plus 
an integer. An object that large is in- 
convenient to manipulate in most pro- 
gramming languages; for instance, 
you can't return it from a function. A 
more serious problem arises in a 
Modula-2 implementation that does 
not export the representation of capa- 
bilities. This opaque export of types, as 
it is called, is what you want, since to 
export the capability's data type is to 
allow other programs to manipulate 
it. But the catch is that in Modula-2, 
an opaque type can be no larger than 
a pointer. How can you store a pointer 
and an integer in the space for just a 

My solution is to replace the pointer 
part of the capability with an offset, 
in words, from the start of the list of 
master pointers. Since Macintosh 
pointers are a hefty 32 bits, I can 
squeeze a 16-bit integer— the genera- 
tion count— and a 1 6-bit word offset 
into a single pointer-size area. If your 
pointers are only 16 bits long, you'll 
have to economize more: perhaps an 
8-bit generation count and an 8-bit 
offset You can even do better than a 
word offset if you are willing to per- 
form a multiplication on each access: 
Since all master pointers are the same 
size and they are allocated con- 
tiguously, you can treat the list of 
master pointers as an array- An offset 
of n can then be used to pick out the 
«th master pointer, just like an array 
index. If the size of a master pointer 

is s, then the nth master pointer is 
s x n words away from the start of the 
master pointer list (assuming n = for 
the first master pointer). The word- 
offset trick can also be used to 
shorten the master pointers: Instead 
of containing a pointer to a block, a 
master pointer could contain an off- 
set from the beginning of the heap. 

While the capability scheme pro- 
vides the ability to reuse master 
pointers, it is not ideal. For one thing, 
you still can't reclaim master pointers. 
If the allocating program allocates 100 
blocks without freeing any, then it 
must create 100 master pointers. If the 
program then frees 95 of the blocks, 
there are still 100 master pointers, and 
there always will be. The capability 
scheme also takes a lot of time. There 
is no getting around doing a compar- 
ison on each access of a block, unless 
you resort to the risky expedient of 
handing out pointers to blocks. (It is 
possible to provide facilities for ac- 
cessing several words of a block with 
a single check, but in most program- 
ming languages these can't be made 
very general.) Finally, the generation 
counts themselves occupy space that 
could be used for other purposes. 

Although we have been coming 
closer and closerto a safe storage al- 
locator, none of these approaches is 
perfect. All but the first of the 
allocators are safe, but at a price: slow 
access, in some cases severe fragmen- 
tation, and in all cases the inability to 
reclaim certain parts of the heap 
(tombstones or master pointers). 
There is also another problem: leakage. 
If the program allocates a block and 
then loses all references to it, that 
block can never be freed. If this hap- 
pens frequently, available storage 
leaks away until the program crashes, 
its memory source exhausted. 

Implementing the accessing pro- 
cedures in hardware would solve the 
speed problem, but the others won't 
go away so easily. If the storage al- 
locator is implemented as a subpro- 
gram, or module, in a high-level lan- 
guage such as Modula-2, you can't do 
anything about leakage or about re- 
claiming tombstones or master 
pointers. Since the storage allocator 
doesn't have access to the internals 




Hundreds of the most 
popular copy-protected 
programs are copied readily. 
CopyWrite needs no 
complicated parameters. 
It needs an IBM Personal 
Computer, or an XT or an AT, 
128k bytes of memory, and 
one diskette drive. 
CopyWrite will run faster 
with more memory or 
another drive. 

CopyWrite is revised 
monthly to keep up with the 
latest in copy-protection. 
You may get a new edition at 
any time for a $15 trade 
in fee. 

CopyWrite makes back up 
copies to protect you 
against accidental loss of 
your software. It is not for 
producing copies for sale or 
trade, or for any other use 
that deprives the author of 
payment for his work. 

To order CopyWrite, send a 
check for $50 U.S., or call us 
with your credit card. We will 
ship the software within 
a day. 

Quaid Software Limited 

45 Charles Street East 

Third Floor 

Toronto. Ontario M4Y 1S2 


Ask about ZeroDisk to run copy -protected 
software from a hard disk without floppies. 

OCTOBER 1986 • BY 

Inquiry 79 






Other Specials 




20 Meg Hardcard (uses 1 
20 Meg Seagate for "AT" . . . 

30 Meg for "AT" 

20 Meg Tape w/cont. & soft 

65 Meg Tape (3m) w/cont. & soft 


Ml 509 NEW 

• M-1109 ..$195 

• HR-15XL .....S360 

• HR-25... $499 

• HR-35 S680 

• Twinriter-5 Dual 
Head S Call 


• LO-800 $545 

• LO-1000 $765 

• LQ-1500 $999 

• LX-80 $220 

FX-85 S Call 

• FX-286 $ Call 



% ^^ , 

iiiMiii __~_ 


• 182 

. . . $299 

• 192 

. . . $399 

• 193 

. . . $599 

• 84 

. . . $699 

• 2410 

. . $ Call 


• KXP 1080 


\« KXP 1091 

.... $239j 

Computers (IBM Compatibles) 

•$595 • 

I IDS PC-XT 8088 .... 
I IDS Turbo 8 Mghz 

1 2 Drives MS-Dos $g 4 g . 


I 1 1.2 Meg Floppy/M.S. Dos & 1495 


•895 - 

Color | 



. ^j^M^l4JLX'- 

Leading Edge Call tor Lowest Price 

AT&T 6300 Call for Lowest Price 

Epson Equity I. II. Ill ... . Call for Lowest Price 



Amber TTL 12.. $89 

Green TTL 12 S85 

Green Composite .. S79 

Amber Composite . S79 


510A TTL Amber . . . S99 

w/Tifit & Swivel Stand 
160A Composite 12 S99 

Amber w/Tilt & Swivel 


Sale on C.I. Accessories 

Floppy Disks Box of 10 Case of 100 
TDK ss/dd 11.95 115.00 

ds/dd 14.95 145.00 

Maxell ss/dd 11.99 115.00 

ds/dd 14.99 145.00 

IBM Parallel Cables 510.00 

A Full Line of Ribbons. Epson. 
Brother. Sale on our full line of 
brand name IBM & compatible 
Add on Cards - Call for Prices. 

Everex Products 

Everex -1 200 Modem , $149 

Everex Edge Card $199 


Everex Mini Magic Card $129 

(W/384k 1/2 slot) 

E 1-800-222-8324! 


jami, FL 33143 

ALL (305) 667-5936 

of the programs that invoke it, it can- 
not know when a block no longer has 
active pointers. Moreover, the al- 
locator must always protect against at- 
tempted access by invalid pointers or 
handles. Thus, it needs some memory 
to note the invalidity of a particular 
pointer or handle value. Perhaps you 
could reduce the memory set aside 
to one bit per pointer, but I very much 
doubt it; in any case, there must be 
some memory usage. 

However, if the storage allocator does 
know about the internals of programs 
that invoke it— in other words, if the 
allocator is an integral part of the im- 
plementation of the programming lan- 
guage—then you can do something. 

Garbage Collection 

A storage allocator that has access to 
the constants, global variables, and 
stack of the program using it need not 
fear invalid pointers. It can periodical- 
ly search the program's storage areas 
looking for invalid pointers and 
destroy them, allowing reclamation of 
tombstones or master pointers. And 
if it finds no references to a particular 
block, the allocator can free it. So 
leakage ceases to be a problem as 

A storage allocator that frees 
storage without user intervention is 
called a garbage collector. It is possible 
to get by with garbage collection and 
nothing else. In other words, you can 
allocate storage but not deallocate it, 
leaving that job to the garbage collec- 
tor. (LISP uses this solution.) 

Garbage collectors eliminate the 
problems of dangling references and 
leaks and are even safer than the safe 
allocators for two reasons. First, while 
safe allocators can catch an illegal ac- 
cess and halt a program gracefully an 
illegal access can't even happen with 
garbage collection because the gar- 
bage collector won't free a block 
unless there are no pointers to it. Sec- 
ond, it is usually possible, especially 
in systems programming languages 
like C and Modula-2, to subvert a safe 
allocator. For example, if you are using 
a double-indirection allocator, you 
can subvert it by dereferencing a han- 
dle only once, resulting in a pointer 
to a block. There is no ironclad way 
to prevent this subterfuge, and in- 

deed, you may even want to provide 
pointers to blocks, because double in- 
direction is slow. Garbage collectors 
can also be subverted, but it is more 
difficult and would only be done 
maliciously; there is no good reason 
to do it. 

However, garbage collection also 
has its drawbacks. Unless you use 
special hardware to support it, the 
process itself can be slow (though 
references to blocks are not affected). 
Most garbage collectors cannot per- 
mit a user program to run while gar- 
bage collection is taking place, so 
noticeable pauses can occur when 
running a program that allocates a lot 
of memory. Garbage collectors can 
also be difficult to write and debug. 


On a fast machine that can support 
it in hardware, garbage collection is 
definitely preferred. But on other 
machines, especially microcomputers, 
it is often desirable to let programs 
free storage as well. To compromise, 
you can use one of the safe allocators 
presented here and occasionally per- 
form a garbage collection to reclaim 
the space occupied by tombstones or 
master pointers and to free storage 
that has leaked. In fact, the tombstone 
allocator looks very good in this light: 
It allows fast access to blocks (a single 
indirection), and its fragmentation 
problems are greatly ameliorated by 
the garbage collector. 

Unfortunately, you can't implement 
garbage collection as an extension to 
an already existing implementation; 
you have to build it into the language 
you are implementing. So if you are 
thinking of designing a programming 
language, think about storage alloca- 
tion right from the start. Don't be one 
of those designers who, much to the 
chagrin of safety-conscious program- 
mers, have left storage allocation to 
be dealt with as an afterthought; who, 
in effect, have said: "See you later, 


1. Knuth, Donald E. The Art of Computer Pro- 
gramming. Vol. 3: Sorting and Searching. 
Reading, MA: Addison-Wesley, 1973. 

2. Robson. J. M. 'An Estimate of the Store 
Size Necessary for Dynamic Storage Al- 
location." journal of ACM. July 1971. ■ 


The most 
' " iflcant 

development in 
monochrome graphics 

since the 

Graphics Card 

the Hercules Graphics Card Plus. 

Four years ago, the Hercules- 
Graphics Card brought high resolu- 
tion monochrome graphics to the 
IBM" PC for the first time. And revo- 
lutionized the world of personal 

Now, it's happening again. 

Because now there's the Hercules 
Graphics Card Plus. A giant step 
forward in technology that creates a 
whole new standard for graphics 
hardware and a world of potential for 

Three modes are 
better than two. 
Until now, graphics cards have had 

only two modes to work with: text 
and graphics. 

Text mode is very fast, but it's 
limited to 256 pre-programmed 

Graphics mode, on the other hand, 
lets your software create as many 
characters as you want. But for text 
processing, graphics mode can be 
slow, painiully slow. 

Enter a new, third mode. 

Called RamFont'." 

Two years in development, 
RamFont gives you the best of both 
worlds. It blends the blinding speed of 
text with the flexibility of graphics. 

The heart of the Graphics 
Card Plus: the VU2 microchip, 
Hercules' next generation 
video processor that makes the 
RamFont mode possible. 

134 BYTE • OCTOBER 1986 

Enough flexibility to blow the 
doors off the 256-character limit of 
text mode. 

Because RamFont can handle an 
astonishing 3072 different characters 
of various widths and heights. 

Instead of 256 canned, 
unchangeable ones. 

The future 
according to RamFont. 

With all these characters and 
fonts to work with, software 
will never be the same again. 

RamFont word processors, 
for example, will put italics, 
boldface, and scientific 
characters right on the screen 
with standard text. So you can 
see what you're about to print. 

RamFont spreadsheets will use 
smaller characters to display larger 
amounts of information. So you 

can get the big picture. 

RamFont integrated packages 
will mix true text and graphics and 
turn your PC's screen into a fast-lane 
version of the Macintosh's.™ 

And if you 
happen to be one of 
those geniuses who's 
fluent in five lan- 
guages, you'll be 
able to type a letter 
in all of them. 

A Herculean feat. 

How did we manage 
to combine the radi- 
cal new RamFont on 
the same card with 
Hercules' legendary sharp text and 
high resolution 720x348 graphics and 
still be 100% compatible with the 
original Hercules Graphics Card? 

It wasn't easy. 

In fact, it took two years and all 
of the sophisticated CAD tools at our 
disposal to create our exclusive V112 

This totally new generation of 
video processor is at the heart of 
every Hercules Graphics Card Plus. 

It's also at the heart of a revolution 
in software that's beginning right now. 

Turn the page and youll see what 
we mean. 

*Patent applied for. 

The Hercules Printer Cable 
a $W value Jree with each 
Graphics Card Plus. 

Another Hercules 
innovation: the new 
LPT112. Its a parallel 
printer port on a chip. 

Inquiry 129 for End-Users. Inquiry 130 for DEALERS ONLY. 

OCTOBER 1986 -BYTE 135 

All C 

r Salary Sarvay <lMt> 

Computer Progra mmer Salar* 


" entitle 



> ' . ' in fire 

, < I I Ml i j* 



| v 

MX B*iri«Mi 

22.4 «-l 

27.5 1-2 
32.7 2-4 
37.1 > 4 
2i.t •-! 

Computer Progranner Salary Survey 
(FroM Source EDP, 1982) 

a 1-2 yrs + 2-4 yrs 

Lotus 1-2-3 Rel. 2 in the RamFont mode of the Graphics Card Plus: fast scrolling, 
a 90-column by 38-row screen and a pop-up graphics window. 

Software will never be the same again. 

The trouble with most new hard- 
ware introductions is that there isn't 
any software available to introduce 
them to. 

Not so with the new Hercules 
Graphics Card Plus. 

It runs everything the original 
Hercules Graphics Card runs. 

Better yet, it comes complete 
with the software you need to start 
using the revolutionary new RamFont 
mode right now with some of the 
world's favorite programs. 

Lotus blossoms. 

Of course, if you want to talk about 
the world's favorite programs, you 
have to start with Lotus* 1-2-3! 
You won't recognize Release 2. 

Because now you can put nearly twice 
as much information on your screen, 
scrolling right and left and up and 
down at speeds you'll remember nos- 
talgically from the days of Version 1A. 

Another thing you won't recognize 
is that cute little graphics window. 
You can thank RamFont for that. 

Now that RamFont is with us, 
you can pop up a graphics window any 
time you're in the mood and still keep 
your 1-2-3 spreadsheet in the 

And you can do the same with 
Symphony,™ of course. 

Or, if your tastes tend toward 
Ashton-Tate®'s Framework™ II, you'll 
be pleased to hear that you can really 

136 B YTE • OCTOBER 1986 

The Graphics Card Plus in RamFont mode 
showing multiple fonts created using FontMany a 
Hercules program that comes free with each Card. 

Ashton-Tate's Framework II with italics and 
boldface and speed in the RamFont mode of the 
new Hercules Graphics Card Plus. 

The programmable RamFont is so flexible, 
Symphony can mix true text and graphics. 

pie of the origl 
Sort, ill of tie kanalieg of text In 

9x14 character cat. Ben 
frepktct Ktae, there are 

Like iUlicx, mo prahh 

x*ctly whit's kip»*fti»f 

ii awther attrtkete teat U kaaelee well hy 

mm »t.f« i far diiplayinf characters * 

. _in»ot he displayed in normal text 
■oea. The proklea with graphics Hoae occurs when the text 
|sti to the hot toe of the display area and the prograa needs 
to scroll the screen, As you are about to see, a graphics 

Cory is lets Foi 
vfxiamm frtnt Quit Rep I. 
■•lost opt In or type eomM le 
Par* 1 tp> 

tp Insert Jiwp Library 
'raasfer Undo Ulr*- 

Hicrosoft Mar*: TBTTILI.MC 

Microsoft Word in RamFont mode: italics, boldface 
and small caps — plus speed and lots of it, at last. 

burn rubber with its word processor. 

The revealed Word. 

Speaking of word processors, remem- 
ber a couple of pages ago how we said 
they would be forever changed? Well, 
the change has already begun. 

For example, the Hercules 
Graphics Card Plus with RamFont 
makes Microsoft® Word a whole new 

Suddenly the italics, boldface, 
superscripts and subscripts scroll 
superfast. Which means you don't 
have to twiddle your thumbs waiting 
for the screen to catch up with your 

More to come. 

As time goes by, more and more 
major programs will take advantage 

of the extraordinary capabilities of 

Which gives you two choices. 

You can buy a Hercules Graphics 
Card Plus and look forward to getting 
your socks knocked off. 

Or you can buy another card and 
watch while technology leaves you 
and your socks behind. 

To help you make up your mind, 
we've prepared a little surprise for 
you on the next page. 

Just make sure you're sitting down. 


Inquiry 131 for End-Users. Inquiry 132 for DEALERS ONLY 

OCTOBER 1986 -BYTE 137 


We thought you'd be. 

Imagine, the new Hercules Graphics Card Plus with 
the power of RamFont plus everything that made the 
original Hercules Graphics Card the monochrome standard. 

At about half the old price. 

Now that's progress. 

Call 1-800-532-0600 ext. 202 (in Canada call 1-800-323-0601 
ext 202) for the name of an Authorized Hercules Dealer near 
you and well rush you a free info kit. 


\Wre strong on graphics. 

Address: 2550 Ninth St., Berkeley, CA 94710 Ph: 415 540-6000 Telex: 754063 
Trademarks/Owners: IBM/IBM; Macintosh/Apple; Lotus, 1-2-3, Symphony/Lotus; Microsoft/Microsoft; Framework II /Ashton-late; Hercules, RamFont, FontMan/Hercules. 

138 BYTE • OCTOBER 1986 

Inquiry 133 for End-Users. Inquiry 134 for DEALERS ONLY. 

by David D. Thiel 

Sound and 
the Amiga 

The amount of RAM 
available to the sound 
system provides the limit 
of what you can do 

While the Amiga's 
capabilities surpass 
the primitive square- 
wave sounds of early personal com- 
puters, the machine still has limita- 
tions to overcome. Making sound with 

microcomputers is sort of a trick. For 
example, when a microcomputer 
makes a clarinet sound, it actually pro- 
duces a square wave. The result 
sounds like a clarinet because a 
clarinet's waveform is close to a 
square wave. But the waveform of a 
piano or a flute is more complex and 
can't be created easily with most 

Sound data is a description of how 
you want to push air around with a 
transducer (speaker) so that the re- 
sulting fluctuations in air pressure are 
perceived by the ear as sounds. The 
amount of data involved in making 
complex, realistic sound events is 
tremendous. Consider the compact 
disk: 75 minutes of high-fidelity audio 
on a disk or 5 50 megabytes of 8-bit 
data; that's roughly 1 2 K bytes of data 
per second. That much data can 
quickly swamp the capabilities of an 
8-bit microcomputer. 

Hardware-generated Sound 

Before the advent of microcomputers, 
mainframe hackers had discovered 
that printing certain sequences of let- 
ters on a line printer would create cer- 
tain pitched tones. Before long, enor- 
mous amounts of paper were being 
used to play Christmas carols. 

The KIM- 1, introduced in 1975, was 
not equipped to produce sound. But 
by 1976 hackers were connecting its 
hardware timer to an output bit at- 

David D. Thiel is vice president of research 
and development for Free-Radical Software 
(1323 South Yale Ave., Arlington Heights. 
IL 60005). He is a musician turned program- 
mer who has done considerable sound-pro- 
gramming work for coin-operated and home 
video games. 


OCTOBER 1986 • BYTE 139 


tached to a speaker. This simplified 
the sound data to a waveform that the 
hardware could make. This technique 
produces the square-wave sound 
found in digital watches and com- 
puters like the IBM PC. The advan- 
tages of this approach are its low cost 
and the minimal software and pro- 
cessor time you need to control a 

With a little more hardware you can 
control the amplitude of the voltage 
swing from low to high and thus the 
amplitude, or volume, of the sound. 
The combination of a timer-based 
square-wave generator with amplitude 
hardware is the fundamental building 
block of the hardware-based sound 
generation found in microcomputers 
ranging in complexity from the Com- 
modore VIC-20 to the Atari 520ST. A 
pseudorandom hardware bit genera- 
tor can be added to produce non- 
periodic sound information, common- 
ly called noise. 

There are several advantages to this 
type of hardware-based approach: 
You don't need to spend a lot on 
specialized hardware, little processor 
intervention is necessary, and you 
won't use large quantities of memory 
to store the sound data. However, 
there are also disadvantages: The 
sound has a computerlike quality, you 
have a fixed and limited number of 
channels, and you are limited to 

coarse amplitude and frequency 

Another Approach 

In 1980, 1 started creating sound with 
microcomputers in a different way. I 
was given a 6502 microprocessor, 128 
bytes of RAM, 4K bytes of ROM. an 
8-bit DAC (digital-to-analog converter), 
and the assignment to "make a sound 
that goes boing." I quickly learned a 
technique that acknowledges the 
periodic nature of sound— using algo- 
rithms, tables of sound data, or some 
combination of the two. This tech- 
nique requires a DAC for the micro- 
processor whose output (after signal 
processing and amplification) you in- 
tend to hook up to a speaker. The 
number of bits in the DAC establishes 
the range of amplitudes and, to. a 
degree, the complexity of the wave- 

This approach is used in its simplest 
form on the Apple II, which has a 1-bit 
DAC directly under software control. 
Even though the Apple II has only two 
levels of output, you can precisely 
control the time between pulses, 
which allows an amazing variety of 
sounds, music, even speech. However, 
while the microprocessor is produc- 
ing sound data, there is little time for 
it to do anything else. Careful and 
meticulous interleaving of software 
tasks can give the appearance of two 

things happening at once, but this is 
time-consuming and not a general- , 
ized solution. 

The Macintosh takes the DAC ap- 
proach one step further by integrating 
sound production with video process- 
ing. While the monitor's video beam 
moves back to the left edge of the 
screen for each scan line, the Mac's 
sound hardware takes a byte out of 
a fixed-length buffer and outputs it to 
an 8-bit DAC. Since the microproces- 
sor is freed from having to interleave 
the sound-generation task with other 
tasks, the effect is a stable sound- 
generation rate. However, the micro- 
processor still has to put sound data 
in the buffer ahead of the video beam 
for every frame (60 times a second). 

There are trade-offs with the Macin- 
tosh's approach to sound. When the 
Mac creates four-voice sound, it uses 
about 50 percent of the microproces- 
sor's throughput. This doesn't include 
waveform scaling for independent 
control of each voice's volume. Since 
graphics on the Mac are processor-in- 
tensive, it's difficult to create elaborate 
sound and graphics at the same time. 


You can also directly digitize sound 
from other sources, store it, and play 
it back through the DAC This tech- 
nique is called sampling, and it has 
the best potential for reproducing 


- --V)',\ 1 Vtl'Vl < ■ f.~H 

^-v;hm\<- ■:■■>■■■■-.'}/_ 

iU* \ 

f f f MJ iliJlflfflMff/i / £ 


A stand-alone programmer starting at $895.00 can 
put you in business to program EE/EPROMs PAL/ 
PLDs,* Single Chip micros,* and Bipolar PROMs* 
+ EPROM IN-CIRCUIT EMULATION* capability that 
can speed up your development time considerably 
and an RS-232 communications port that lets you 
integrate it with your IBM PC as a total firmware and 
Logic development station. 

All from a company with an excellent reputation for 
quality and service. 


140 BYTE • OCTOBER 1986 


complex realistic sound with a com- 
puter. Once you have sampled the 
sound data you can process it further 
for special effects, splice it, loop it, 
and set it up for random access. 

One problem with sampling is the 
amount of sound data you need. The 
Mac's sampling rate, for example, is 
22,300 samples (bytes of data) per 
second. For this reason, sampling has 
been used very little on the 128K-byte 

Sampling also has the special prob- 
lem of trying to produce realistic 
sound by pumping numbers through 
a DAC You can get audio-aliasing 
distortion, or the "sonic jaggies" (the 
sonic equivalent of the jagged lines 
you get when you draw angled or 
curved lines on a raster display). You 
can get false harmonics if you use too 
slow a sampling period to reproduce 
sound of a given frequency. 

The Amiga 

The Commodore Amiga offers an en- 
hanced, hardware-assisted, DAC ap- 
proach to sound. It has more than 
four times as much sound hardware 
as the Mac. Each channel is com- 
posed of an 8-bit DAC with 5 bits of 
amplitude control, and the micropro- 
cessor can output sound data to each 
DAC independently. 

The Amiga has a low-pass filter that 
cuts out most output with frequencies 

above 7 kHz. This eliminates the alias- 
ing distortion that occurs above 7 kHz 
when sampling at 28,800 samples per 
second. While not high-fidelity, the 
sound is good for a personal com- 
puter. The usable sampling period in 
terms of the filter is 14,000 to 28,800 
samples per second. This range can 
be used for one octave of musical 
notes reproduced faithfully up to 7 
kHz. In actual practice the sampling 
rate can be as low as 7000 samples 
per second for some applications 
where waveform data space is at a 

The Amiga's hardware design phi- 
losophy is to leave the processor free 
as much as possible. The direct mem- 
ory access (DMA) hardware for sound 
generation complies with this rule. 
The Amiga uses four variable-period 
DMA channels. You can vary the sam- 
pling rate from 28,800 samples per 
second to one sample every two sec- 
onds. These samples can be any- 
where in a 512K-byte address space 
and can be as short as 2 bytes or as 
long as 2 56K bytes. The output of 
each DMA channel is processed by a 
low-pass filter that becomes effective 
at 4 kHz and cuts out sound frequen- 
cies greater than 7 kHz. 

To generate sound on the Amiga, 
you must load the DMA hardware 
registers with the starting location of 
the sound data, its length, and the 

The Amiga has 
four times as much 
sound hardware 
as the Macintosh. 

sampling period. When enabled, the 
Amiga generates sound until it gets 
to the end of the sound data; then it 
resets the location and length and 
repeats the process until it is disabled. 
This frees the processor from the ma- 
jority of the work typically associated 
with audio sampling. 

The DMA hardware retrieves each 
byte of the sound buffer sequential- 
ly. Since every byte in the wave table 
is pumped out, the length of the wave 
table determines the highest funda- 
mental frequency that the channel 
can play. For example, to play the 
musical octave from A (at 440 kHz) to 
G# (at 830 kHz) without the distortion 
of aliasing, the waveform length must 
be 16 bytes. This is not a lot of res- 
olution with which to describe a com- 
plex waveform. The waveform length 
for the next octave can only be 8 
bytes, and so on. Therefore, reproduc- 
ing the sound range of the upper half 
of the piano keyboard is subject to 



*some devices require 
optional adaptors. 


■ Stand-Alone/RS-232 

■ 512K bits RAM buffer 

■ EPROMs 2716-1 MEG 

■ Capacity: Two EPROMs 
(set programming) 

■ Accepts Intel, Mot. Hex files 

■ Accepts JEDEC files 

■ Optional Keypad/Alpha display 

■ Tilt stand and carrying handle 

■ Works with Exatron IC handler 

also available: UV ERASERS and 
GANG programmers. 

All products 100% made in U.S.A. 

CALL 1-800-331-7766 

Logical Devices Inc. 1321 NW 65th Place 
Ft. Lauderdale, FL 3 3309 




(305) 974-0967 


Canada East 



Canada West 






Itly., Ger., Swss 


845 79734 



790 35703 


790 82635 


Inquiry 1 69 for End-Users. Inquiry 170 for DEALERS ONLY. 

OCTOBER 1986 -BYTE 141 


Substantial software 
exists to support 
the use of sound 
hardware in the 
Amiga's multitasking 

some compromise. 

The DMA soundtiardware also has 
the ability to seamlessly join wave- 
form data together. When the audio 
DMA hardware reads its registers, it 
copies them into internal registers and 
an interrupt occurs. At this time you 
can change the data pointer and 
length so that when DMA starts the 
process again, it could be accessing 
a new and different piece of sampled 
data. This has many exciting ramifica- 
tions. You can simulate a musical in- 
strument's sound by sampling its at- 
tack and splicing that to its waveform. 
This saves a great deal of space and 
opens up a whole new world of hy- 
brid instruments. 

In addition, the Amiga has the first 
standard left and right stereo outputs 
in personal computer history. The four 
channels of DMA-driven sampling 
hardware are output through the low- 
pass filter and routed through fixed- 
assignment stereo jacks for connec- 
tion to external audio equipment. By 
using two complementary channels, 
you can position sound in left-to-right 
space with software. Obviously, there 
is a trade-off between the number of 
discrete channels desired and the 
stereo spread, but it is a lot of fun to 
put explosion sounds together with 
their visual counterparts. If you are 
using a monaural monitor, attaching 
a Y-connector makes it possible to 
hear all four channels. 

The Amiga's sound hardware also 
has the capability to modulate one 
channel's period and/or volume by 
the output of another's. You disable 
the modulating channel's audio out- 
put and then use its data to modify 
the modulated channel's frequency 

and/or amplitude. Used in its simplest 
form, this relieves the load on the pro- 
cessor for effects like tremolo 
(amplitude modulation) and vibrato 
(frequency modulation). 

Software Sound Synthesis 

In 1973, Dr. John Chowning published 
a paper in the journal of the Audio Engi- 
neering Society entitled 'The Synthesis 
of Complex Audio Spectra by Means 
of Frequency Modulation." This FM 
model of sound synthesis has be- 
come the basis for several profes- 
sional musical instruments, including 
the Yamaha DX-7. If you use channels 
to modulate other channels, the 
Amiga can achieve a variety of the 
synthesis models proposed by Dr. 
Chowning. While this mode uses up 
all of the Amiga's sound resources, it 
can create one very complex voice 
that rivals those of dedicated hard- 
ware synthesizers. 

Substantial software exists to sup- 
port the use of sound hardware in the 
Amiga's multitasking environment. 
Since many tasks can run concurrent- 
ly—each assuming that it "owns" the 
machine— there needs to be a way of 
arbitrating who gets the sound hard- 
ware. Audio software support on the 
Amiga follows the same device model 
established for all peripherals on the 

The Amiga allocates virtual audio 
channels on a priority basis and sup- 
ports all of the above-mentioned 
hardware features. It also supports in- 
terrupt processing for waveform splic- 
ing with a queue that stores the sound 
requests for a particular channel un- 
til it can process them. While the 
audio device is flexible, it is complex 
to use. For certain types of sound syn- 
thesis, direct access to the hardware 
registers is more processor-efficient. 

One sound innovation on the 
Amiga is its support of voice synthesis 
as a standard peripheral. Without any 
additional hardware, the narrator 
device does an understandable simu- 
lation of the human voice. The Soft- 
Voice program, which is the heart of 
the narrator device, provides all the 
elements for phonetic speech genera- 
tion. In addition, there is a text-to- 
phoneme program called Translator 
that you can use to create phonetic 

strings for input to the narrator device. 
The only costs for using speech as 
part of the man-machine interface are 
some RAM and some processor time. 

Resource Limitations 

It is important to remember that 
sound is data to a computer. This is 
the key to using the Amiga to produce 
sound. You must make major trade- 
offs in space and processor utiliza- 
tion. Unfortunately, Commodore has 
marketed the Amiga as a 256K-byte 
machine. Full utilization of its sound 
and graphics hardware requires a lot 
of memory. A wave table for six oc- 
taves of a good string sound takes 
32K bytes. If you wanted to have six 
different instruments available for ran- 
dom access in a music program, and 
if your program required 70K bytes, 
the waveform data and program to- 
gether would need 262K bytes; in 
other words, they wouldn't fit. 

In my experience in recreational 
software, the resources allocated to 
sound production are usually one- 
eighth of the total. In the coin- 
operated video-game world of Reac- 
tor and Q*Bert, the sound program 
required 4K bytes of EPROM com- 
pared to 32K bytes for the game com- 
puter. In a Commodore 64 program, 
3K to 6K bytes were set aside in RAM 
for sound. If this ratio holds true, then 
the available RAM for sound samples 
and the sound system on the Amiga 
is 32K of its 2 56K bytes. These 
numbers do not take into account the 
Amiga's multitasking nature that 
makes the available RAM an indefinite 
concept. The point is. the amount of 
RAM available to the sound system 
provides the limit of what you can do 
with sound and the Amiga. 

To overcome space limitations, you 
can use the Amiga's 68000 to create 
sound data "on the fly." This approach 
trades space for speed and is not 
usually acceptable unless you plan to 
dedicate the machine to sound pro- 
duction. The really exciting part of the 
Amiga's sound system is its hardware- 
assisted software-based approach. A 
DAC is to sound as a bit map is to 
graphics. A software approach is 
open-ended. Within processor and 
RAM limitations, you can do whatever 
you are clever enough to conceive. ■ 

142 BYTE • OCTOBER 1986 


The initial step from computer technology to 
computer disks was a natural for TDK, because 
they're more than manufacturers, they're creative 
innovators. TDK has used its expertise as one of 
the world's major producers of electronic compo- 
nent parts (including the most sophisticated 
heads for disk drives) to design floppy disks that 
deliver error free performance. 

Absolute quality has always been a major 
source of pride for TDK. Their position as the 
world's largest manufacturer of magnetic media 
has been earned by an unparalleled level of tech- 
nical superiority that spans over 50 years. 


Millions of people around the world rely on 
TDK for the ultimate in audio and video record- 
ing performance. Now they can rely on TDK for 
the same consistently high performance in 
floppy disks. After all, PCs have feelings too. 
They deserve the TDK advantage other sophis- 
ticated electronic equipment has always 

Let your PC know you care, choose from 
TDK's family of 5.25-inch standard, 5.25-inch 
High Density and 3.5-inch No-Risk™ Disks. 
Because it just doesn't pay to cut corners when it 
comes to floppy disks. 




Northeastern Region: 51 6-625-01 00; Southern Region: 404-948-1 346; Midwestern Region: 31 2-676-5356; Western Region: 71 4-863-1 844 © 1986 tdk Electronics Corp. 

Inquiry 295 

OCTOBER 1986 -BYTE 143 


1080. ...$195 


1080 195 

1091 225 

3131 249 

1092 309 

1592 419 

1595 595 


120-D 179 

MSP-10 285 

MSP- 15 385 

MSP-20 325 

MSP-25 485 

Premier 35 469 


1550 SP+ CALL 

D1040 CALL 

Prowriter Junior CALL 

Prowriter8510SP+. . . CALL 


TR-122MYP 12" Amber TTL. 139 
TR-122M9P 12" Green TTL. 139 
TX-12H3P 12" RGB 369 

DT-H103 10" RGB 349 



PC 1200 ST 189 

PC 1200 XL 259 

PC 1200 XL/PFS 279 


Volksmodem 55 

Volksmodem 12 179 


Password 1200M 189 

Courier 2400 395 



Bank Street Writer... 48. 95 

Print Shop 24.95 

Graphics Library I 22.95 

Graphics Libary 2. . . . 22.95 
Ancient Art of War . . . 22.95 
Champ Lode 

Runner 22.95 

Karateka 22.95 


Nutshell 69.95 

Nutshell Filer... 149.00 










LQ1000 CALL 



EXP600P 489 

EXP 800P 649 

EXP 770 740 


D25 549 

P-32CQI 699 

635 . ,. 1029 

P-38 1749 

D-80 IF 2395 


ZVM 1220 89 

ZVM 1230 89 

ZVM 1240 149 


365 12 RGB CALL 


SP-1000 VC (C-64) .... 175 
SP-1 000 ACentronics. . 1 95 

SP-1000 IBM 195 

SP-1000 As RS-232 ... 195 

BP-1300 469 

BP-5200 649 

BP-5420 999 

Color Kit 119 

BP-5420 Ribbon 12.50 

SP-1000 Ribbon 8.50 


HR-15XL-P 359 

HR-15XL-S 359 



MM-1218 12" Green 99 

MM-1220 12" TTL Amber .129 
CM-1406C 13" color 

w/ cable 179 

CM-1409 13"RGB 305 

CM-1216D12" RGB 385 

CM-1455S 13" 720x350.. .525 

720x460 679 


Juki 6100 CALL 

5510 Juki CALL 

Juki 6300 CALL 

RS-232 Serial Board .... 55 

Color Kit 105 

6100 Tractor 119 

6100 Sheet Feeder. ... 209 


808 148 

1080 CALL 

1380 229 

1385 289 


321 P/S 495 

351 Sheet Feeder 529 

P341P 969 

P341S 999 

P351+ 1149 


MJ-10 149 

MJ-22 249 

MS-305 RGB 309 


1902 Color CALL 

1802 CALL 



PC-AT2pc 10.99 

PC-XT2pc 10.99 



•320K °o Vo" Drive 



Tac 10(Ap/Pc) 22.95 


Six Pack Plus 209 


EGA Plus 329 



ML Baseball 24.95 

General Manager 24.95 

85 Team Disk 14.95 


Flip-N-File 10 2.49 

Flip-N-File25Lock. 10.95 
Flip-N-File 50 Mini . . 10.95 
Flip-N-File 50 Loc* . 15.95 
Flip-N-File ROM .... 7.99 



Set Simulator 34.95 

Scenery Disks. . . Each 1 4.95 

Set 1-6 69.95 

S.D. Japan 14.95 

S.D. San Francisco ... 1 4.95 


Battle for Normandy....24.95 

Knights of Desert 24.95 

Tigers in Snow 24.95 

Computer Baseball 24.95 

Cartels & Cutthroats ...24.95 



LV 12-10 (New) CALL 




SB- 15 CALL 

SG-15 367 

SD-10 319 

SD-15 438 

SR-10 469 

SR-15 578 

SB-10 589 


Okimate 1 OXE 179 

292 CALL 

293 CALL 

Okimate 20ST 199 

120 NLQ 205 

182 214 

1,92 348 

93 CALL 


MAX-12 Amber 175 

HX-12 RGB 458 

SR-12 RGB 575 



SSDD 9.99 

DSDD 12.99 


SSDD 6.99 

DSDD 7.50 


SSDD 8.50 

DSDD 9.50 



Borrowed Time 24.75 

Mindshadows 24.75 

Music Studio 29.95 

Alter Ego 29.95 

Alter Ego (Male) 29.55 


Gold Quadboard 399 

Silver Quadboard 229 

Quadboard 199 

TOLL FREE 1-800-233-8760 



Frl 9AM-6PM 

Sat 10AM-6PM 

In PA 717-494-1030 
Customer Service 717-494-1670 


or send order to 
Lyco Computer 
P.O. Box 5088 

Jersey Shore, PA 

In stock Hems shipped within 24 hours of order. No deposit on COD orders. Free 
shipping on prepaid cash orders wiihin the coniinental U.S. Volume discounts availa- 
ble PA residents add sates tax. APO FPO and international orders add $5.00 plus 
3% for priority mail service. Advertised prices show 4% discount for cash, add 4% 
for MasterCard and Visa Personal checks require 4 weeks clearance before shipping. 
We do not guarantee compatibility We only ship factory fresh merchandise. Ask about 
UPS Blue and Red label shipping. All merchandise carried under manufacturer's 
warranty. Return restriction applicable Returnauthorizationrequired. All items subject 
to change without notice. 



Mon-Thur 9AM-8PM 

Fri 9AM-6PM 

Sat 10AM-6PM 

Inquiry 1 79 





by Robert C. Arp Jr. 

Simplified flag testing and input comparison 
by exploiting powers of 2 

grams for my HP-41CV calculator 
recently, I repeatedly needed more 
than the 11 available user flags. 
Because I have the Extended Func- 
tions/Memory Module (EF/MM). I con- 
sidered a suggestion from the owner's 
manual to increase the number of ap- 
parent general flags by using the 
X< >F (X exchange flags) function. 

For reasons I will discuss, 1 was not 
satisfied with the results. However, 
this exercise led me to observe a re- 
markable property of summations of 

I do not intend to offer a rigorous 
mathematical proof of the 2" prop- 
erty; I have simply verified that the 
property functions within the limits of 
my calculator. 

I have studied many math and com- 
puter books during my career, but I 
cannot recall ever having seen refer- 
ence to this property. However, if 
there is someone to whom credit 
should be extended, then 1 apologize 
for the oversight. 

The Problem 

I had been designing a system of pro- 
grams for federal taxes that would 
permit updating of totals in a spread- 

sheet fashion. Because of the re- 
quired number of schedules and 
forms, I was using the status of flags 
to branch to labels in order to imple- 
ment various options. The HP-41CV 
has 1 1 general-purpose flags. I 
needed more. 

The EF/MM owner's manual sug- 
gests the use of X< >F to increase 
the number of apparent general- 
purpose flags. This is possible 
because executing this function sets 
the status of flags through 7 accord- 
ing to a status code previously 
entered into the X register. Simulta- 
neously, a code representing the 
former status of those flags is trans- 
ferred from the F register to the X reg- 
ister. A numeric code for each of the 
eight flags is shown in table 1. 

You set one or more of the flags, 
through 7, by forming a sum of the 
numeric codes for each flag affected. 
For example, to set flags 1 and 2 , you 
set the sum to 2+4=6. The sum 255 
is required to set all flags; is re- 
quired to clear all flags. Flags whose 
numeric code is not an addend of the 
sum are cleared. 

You can realize the apparent in- 
crease in available flags by calculating 
several summations and storing them 

in separate registers for later recall 
and comparison. In this manner, a 
combination of flag statuses is under- 
stood to represent the status of an ap- 
parent flag. For example, if the sum 
6 were stored in a register, by recall- 
ing its contents and comparing it to 
the contents of the X register after an 
execution of X< >F, you could deter- 
mine if and only if both flags 1 and 
2 were set. 

I felt that I could tolerate the clum- 
siness of the operation; however, I 
could not afford to devote one regis- 
ter for each of the required status 
codes. Memory in the HP-41CV is or- 
ganized in registers of 7 bytes in size; 
most instructions require only 1 or 2 
bytes. Of course, registers used for 
storage cannot be used for program- 

While reviewing the X< >F func- 
tion, I had noticed that the numeric 
code for each flag n was 2". I am sure 
that it was this observation that 
prompted the lateral thinking required 

Robert C. Arp Jr. (278 San Tornas Aquino 
Rd. #1, Campbell CA 95008) holds a B.S. 
in electrical engineering. He is currently con- 
ducting independent research in natural and 
artificial intelligence. 

OCTOBER 1986 -BYTE 145 


for the unconscious formulation of a 
satisfactory method of generating any 
number of flags. 

The Question 

Because computers use the binary 
system and because powers of the 
base must certainly be associated 
with the system, I wondered if there 
was a property of 2 ' that could be ex- 
ploited to create an association be- 
tween the presence or absence of a 
particular 2". 

The Investigation 

After playing with numbers for a 
while, I made the following supposi- 
tion: If a E 2' is divided by X = 2", 
and X<L2\ then the quotient will be 
odd when X is an addend of E2' but 
will be even otherwise. If this is true, 
then quotient modulo 2 will be I or 0. 
The example in figure I shows what 
happens when a £2' is divided by an 
arbitrary 2". Suppose that the summa- 

tion is composed of random addends 
that are each 2". If n = 0. 3. 7, then 
L2 i = 2Q+2H2* = 1+8+128 = 137. 
Notice the quotients for the following 
divisions, where E = 137. 

Note also that whenever 2" is an ad- 
dend of the summation, the integer 
portion of the quotient is odd. How- 
ever, whenever 2" is not an addend, 
the integer portion of the quotient is 
even (0 is considered to be even). 
Thus, performing modulo 2 on the in- 
teger portion yields a I when 2" is an 
addend but yields a otherwise. 

Keeping in mind that n has re- 
mained positive throughout the exam- 
ple, these observations and conclu- 
sions may be summarized, as they are 
in figure 2. 

At this point we have verified that 
there is an association between a 
summation of 2's and its addends that 
enables us to determine whether a 
particular 2" is one of the addends. 
Furthermore, a mathematical calcula- 


1 : Numeric code for each of eight flags. 


















-p- = 137.000 



2 2 


£- 17125 

2 4 




Jr = 2 - 141 






Figure 1: This example shows what happens when a E2'" is divided by 
an arbitrary 2". 


MOD 2 = 

1, 2" an addend of E2' 
0, otherwise 

Figure 2: Keeping in mind that n is positive, these conclusions can be made. 

tion will produce a I if the test is true 
and a if the test is false. 


The discovery of the association be- 
tween a summation of 2's and its 
addends was only a beginning. Now 
I had to determine a method of set- 
ting, clearing, and testing the condi- 
tion of flags that does not depend 
upon variable assignment limitations 
of the programming medium. 

The following concept-level algo- 
rithms are limited only by the largest 
number that can be processed by the 
programming medium: 

Setting a flag: 

1. Input a flag number, n. 

2. Compute X = 2 n . 

3. Add X to E2\ 

Clearing a flag: 

1. Input a flag number, n. 

2. Compute X = 2". 

3. Subtract X from E2\ 

Testing a flag condition: 

1. Input a flag number, n. 

2. Compute X = 2". 

3. Recall E2\ 

4. Compute Y = E27X. 

5. Extract Z = integer portion of Y. 

6. Compute state = Z modulo 2. 

These concept-level algorithms rep- 
resent minimum algorithms. Caution 
is required when setting and clearing 
flags because an erroneous sum 
would be accumulated whenever set- 
ting a flag more than once or when- 
ever clearing a flag not previously set. 

These minimum algorithms may be 
used in cases where attention is be- 
ing paid to flag conditions during pro- 
gramming. Alternately, you may test 
the condition of a flag before setting 
or clearing. Exercising this caution 
alters the algorithms as shown below: 

Set flag if clear: 

1. Execute test-flag algorithm. 

2. If state = I, then end, 
else continue. 

Clear flag if set: 

1. Execute test-flag algorithm. 

2. If state = 0, then end, 
else continue. 

The three algorithms expect an in- 


146 BYTE • OCTOBER 1986 

Free source code 
in every box. 

Actually, we give you two things free. 

Our source code. And your freedom. 

Just buy part or all of our excellent integrated 
business accounting system, the SBT Database 
Accounting Library. 

Well give you our source code absolutely free. 

Which, in turn, gives you the freedom to 
customize our software to fit your business needs. 

Say, for instance, you want to change the 
way a management report is formatted. Our free 
source code enables you to change it. 

What's more, the change will be quick and 
simple because our software is written in easy-to- 
use dBASE. 

In fact, the entire SBT Database Accounting 
Library runs with dBASE III or dBASE II, * so you 
get the power and flexibility of those best-selling 
programs. Plus the freedom to use any computer 
that runs dBASE. 

The SBT Database Accounting Library. 
Great software and freedom. All in the same box. 

Three Harbor Drive 
(415) 331-9900 

Sausalito,CA 94965 

Call today for our demo disk and brochure. 




Time & Billing 



Sales Order processing 



Billing/Inventory Control 



Accounts Receivable 

$ 95 


Purchase Order 



Accounts Payable 






General Ledger /Finance 






Project/Job Accounting 



Tenant/Unit Management 



Menu /Backup 

$ 65 

MultiNet versions additional $200 per module 

Call today for the name of the SBT consultant 
in your area. 


Compiled and Multi-User versions also available. dBASE III and dBASE II are registered trademarks of Ashton-Tate, Inc. Copyright 1985, SBT Corporation. 
Inquiry 269 OCTOBER 1986 -BYTE 147 

Inquiry 136 






The Integrated Console Utilitv 1M 


For the IBM-PC , AT, and clones 

New Version 2.00 is MUCH FASTI !K! 
Now blink tree scrolling on CGA ! 








Speed up your screenwriting 2-6x 

Extend your ANSI.SYS to full VT100 

Add many more escape sequences 

Scroll lines back onto screen 

Save scrolled lines into a file 

Add zip to your cursor keys 

Free your eyes from scroll blinking 

Easy installation 

Get a 43 line screen w/EGA 

Get a 50 line screen w/CGA 

No more annoying typeahead beep 

Prevent screen phospher burnin 

Control many programs' use of color 

Generate breakpts from keyboard 

Shorten that annoying bell 

Over 40 other useful options 








"The psychological difference is 


—Lotus June 85 pg 8. 

"So many handy functions rolled into 
one unobtrusive package" 
—PC- World Feb 86 pg 282. 

"The support provided by the 
publishers is extraordinary" 
—Capital PC Monitor May 86 pg 25. 

"... the best choice for improving your 

console ..." 

—Capital PC Monitor June 86 pg 282. 

400p Manual (w/slip case) & disks $75. 

Satisfaction Guaranteed! 
Order Yours Today! 


Box 8276, Ann Arbor, Ml 48107 
(313) 994-3259 VISA/MC/Amex 

To the user, 

n is a flag that 

must be set 

cleared, or tested. 

teger, n, as a passed parameter. To the 
user, n is a flag that must be set, 
cleared, or tested. Each algorithm 
raises 2 to the power of n. The set-flag 
algorithm accumulates 2" as a com- 
ponent of a sum consisting of ad- 
dends 2\ where each i is a member 
of the set of all flags that you have set 
previously but not cleared. The clear- 
flag algorithm subtracts 2" from E2'\ 
The test-flag algorithm divides £2'' by 
2", discards the quotient's fractional 
component, and uses remainder divi- 
sion to report the condition of flag n. 

When executing the test-flag algo- 
rithm, there may be times when you 
want to test for 2"<E2' before per- 
forming the division. When this con- 
dition is false, a may be returned by 
the algorithm immediately. Further- 
more, the subroutine is not restricted 
to the use of a single E2\ Any of 
several summations could be used 
depending upon the validity of some 
particular condition. 

An added attraction of the process, 
whether it is useful or not, is the fact 
that all components 2' of any E2' may 
be extracted by processing each 2" 
less than or equal to £2' and noting 
those that produce a I. 

Additional Uses 

I also discovered that in addition to 
solving my problem of inadequate 
flags, I was able to simplify an ag- 
gravating problem associated with the 
correctness of keyboard input and 
input-driven processing. 

Like most other computers, the 
HP-41CV permits the programmer to 
process alphanumeric input by the 
detection of key codes. There are ac- 
tually two sets of codes associated 
with HP-41CV keyboard inputs. One 
code represents the topographical 
location of keys; the other is an inter- 
nal representation of character codes 
based on ASCII. 

I had been executing certain op- 
tions that depended on keyboard in- 
put, and I was using both of the key 
codes. In doing this, I had to verify the 
correctness of user choices and estab- 
lish the numerous branching and sub- 
routine calls. All of this was depen- 
dent upon the complexity of the tax 
system itself and upon unpredictable 
user selection. The test-flag algorithm 
immediately simplified the process. 

In use, to prevent the summations 
of 2' from growing too rapidly, I first 
converted the HP-41CV codes to 
something more palatable by sub- 
tracting a base number from par- 
ticular inputs. For example, the ASCII 
equivalent codes for letters A through 
Z are numbers 65 through 90. After 
any alphabetic input, I simply sub- 
tracted 65 from the ASCII equivalent 
code for the input. This produced 
equivalent codes through 2 5. 

It is easy to see that 2 25 = 
33,554,432, which is the largest pos- 
sible 2" with the modified code, is 
much less than 2™ = 1.238 x 10 27 , 
which would have been the largest 
possible otherwise. 

I then passed the resultant n to a 
keytest subroutine along with the re- 
quired E2\ in which each i was a per- 
missible code. I included a provision 
for detecting codes less than zero, 
because they were possible (the con- 
version uses subtraction) but illegal. 
All codes producing values of 2" that 
were not addends of £2'' would then 
return a 0. In the calling program, a 
would cause a branch to an error 
subroutine. This adaptation is shown 


1. Input n. 

2. If «<0. return a 0, 
else continue. 

3. Compute X = 2". 

4. Compute Y = E27X. 

5. Extract Z = integer portion of Y. 

6. Compute Z modulo 2. 

Thereafter, this algorithm became a 
valuable programming tool, providing 
many simplifications that could not 
have been realized otherwise. Even- 
tually, the input detection function 
became as important as the process 
for which I developed the original al- 
gorithm. ■ 

148 BYTE • OCTOBER 1986 




Put your design ideas intmnore chips. 

New AVMAC™ Macro cross- 
assemblers, combined with 
our simulators, emulators 
and EPROM programmers, 
turn your PC or VAX into a 
complete development 

AVMAC is fast. Its transparent 
buffering scheme provides the 
speed of memory-based assem- 
bly without restricting file size. 
And, AVMAC has one of the most 
comprehensive macro facilities 

AVMAC is loaded with fea- 
tures that make your develop- 
ment job easier. You get source 
code flexibility; AVMAC supports 
over 1000 relocatable segments. 
AVLINK™ linker and AVLIB™ 
librarian support modular pro- 
gramming with full control over 
segment combination and place- 
ment. AVREF™ generates cross- 
references by line and 
procedure. And, AVMAC gives 
you informative, plain English 
error messages. 

Inquiry 32 

AVMAC offers superior com- 
patibility with manufacturers' 
assembly languages. And it's 
designed to work hand-in-hand 
with AVSIM™ , Avocet's software 

Every company talks about 
service. But at Avocet we're 
committed to satisfying customer 
requests for in-stock items in 2-3 
working days. And that's a fact! 

For easy access, call our 800 
number for ordering, product 
information and technical assis- 
tance. We're also interested in 
your ideas on how we can better 
serve your needs. 

AVMAC Macro Cross-assemblers 

MSDOS™ , PCDOS™ $349 

XMAC68K $595 

VAX™/UNIX™ $995 

Target Microprocessor 
Families Supported: 








6502/65C02 Z8 

6800/01,6301 Z80 

NEC 7500 68H11 







TMS32010 TMS32020 

In addition to AVMAC, 
Avocet provides everything 
you need to develop micro- 
processor software. 

AVSIM full-screen Simulator/ 
Debuggers make software 
simulation practical. Test your 
code in a crashproof, interac- 
tive environment, without addi- 
tional hardware. Price $299. 
TRICE™ self -powered 
In-circuit Emulators recog- 
nize 34 different commands; 

set break points, single-step, 

trace and more. Priced from 


AVPROM™ Programmers 

work with any PC. Program 
over 37 different devices, 
including EPROMs through 
27512, CMOS and E 2 PROMS, 
and MPU/EPROM combos, 
using fast, "adaptive" algo- 
rithms. From $429. Gang pro- 
grammers from $979. 

To find out more about Avocet 
software development tools, 
call us toll-free: 


(In the U.S. except Alaska.) 

VISA and Mastercard 
accepted. Most popular disk 
formats now available — please 
specify. Software shipment by 
second-day air within the conti- 
nental U.S. included. Special 
handling and other shipping 
additional; call for exact quotes. 
cet Systems Inc., P.O. Box 490- 
B16, Rockport, Maine 04856, 
(207) 236-9055. Telex: 467210 


'"signifies manufacturer's trademark 

OCTOBER 1 986 • BYTE 149 



Finally: the computers you've been waiting for. Speed. Power. Flexibility. And IBM 
PC/XT/AT compatibility. 

im *wm^ vM%»iHr ■ ■■!■■ The pc , s Lmi j te( j 286 10 and 286 12 are the most technologically-advanced personal com- 
LSO CONQU ERS SPACI puters ever designed. They run at 10 and 12 megahertz, respectively, providing the fastest 

* x processing times of any PC-compatible. 

Who needs 12 megahertz speed? You do, if you use dBase and you're tired of waiting dur- 
ing long sorts and indexes. You do, if you're tired of going out to lunch while your compiler finishes its work. You do, if you want to see 
Microsoft Windows fly. Or AutoCAD or P-CAD take off. 

The PC's Limited 286s also have the exclusive SmartVu panel — an alphanumeric window into the computer that reports on processing speed 
and provides diagnostic messages in English. It can even help predict hard-disk failures before you lose a month's work. 

The 286s are also smaller than the other AT-compatibles — more than 25% smaller than the IBM PC-AT, for example. Which means you can find 
your desk again. 

And they're not stripped, Asian wonder-boxes. Designed and built in the U.S., the 286 10 and 286 li come with 1,024K of fast RAM on the 
motherboard, 1.2 Mb floppy drive, 200-watt power supply, and an AT-style keyboard. 

And every 286 goes through ex- 
tensive bench-testing and ex- 
tended burn-in before it leaves 
our plant. 

What more can we say? Except 
that you can buy the 286 u for 
just $2,695, the 286 10 for 12,295. 
Including shipping. Both backed, 
of course, by PC's Limited's One- 
Year Limited Warranty and 
30-Day Money-Back Guarantee. 



i - 

Call for latest prices. .. . 

* Limited Warranty 

FREE SHIPPING in the continental United States via UPS Ground. 



PC'S LIMITED 286'™ * 

High Performance, Competitive Price 
PC Magazine "Editor's Choice" Feb. 25, 1986 
Includes: 80286-based system unit, 1024K on mother board, 

1.2 Meg Floppy Drive, Combined Floppy and Hard Disk Controller Card, AT Style Keyboard, 192W 
Power Supply, 2 Serials and I Parallel Port, and Clock/Calendar with Battery Backup. 
Runs all Major Software written for the IBM PC™, PC XT™, and PC AT™. (Processor): Intel 80286 run- 
ning at 8MHZ. (Expansion Slots): 8. Same Bus Configuration as IBM PC AT™. 
One Year Warranty ' 

30 Day 
r Money Back 

^L Guarantee 





High Performance, Competitive Price 

Includes: System Unit, 640K on Mother Board, 36OK Floppy Drive, AT Stvle Kevboard, 130W Power 


Runs all major software written for the IBM PC™, PC/XT™, 40% faster, without 
modifications. Processor: 16— bit 8088—2, 4.77 or 6.66 MHZ Clock Speed. Expansion Slots: 8; 7 are 
available in above configuration. 
One Year Warranty.* 



• 3 !o " Tandon Hard Disk 

• Software included 

• Easy to install 

• One Year Warranty 

300/1200 BAUD HAYES 

Internal $159 fi« m sho, si™ 
External $179 



ln, CraJ | S 409 

21) MB Hard Disk System for PC™ 

Includes Tandon Hard Disk. Western Digital Controller. Cables. Manual, Software, and Mounting 

Hardware. Boots from Hard disk Our Hard Disk Systems are compatible with the latest versions of 

the following computers: IBM PC. IBM XT, AT&T 6300, Compaq Deskpro. Tandy 1000. Tandy 

1200. PC's Limited Turbo PC. Leading Edge PC (Both Models). Sperry PC, WysePC, ITT PC. and 

most other Compatibles. 


One Year Warranty" 


Mitsubishi Electronics Half-Height. DS/DD 
Also available for ATNn gray. 

s 795 

• Backs up ■> Megs per minute 

• Runs under MS DOS or 

•Pulse Soft ware Included 


s 129 

• 12" flat and compact screen 

• TTL signal input 
' Built-in swivel and tilt base 

• Instant action system 

• Low distortion 




w,ok s 99 -/««*149 

• Upgradable to 384K 

• Clock/Calendar 

• Includes Software 

• Parallel Port 

• Serial Port 

• Game Port 
Two Year Warranty' 



2,. MEG * 579 M>M t (*699 


s 99 

• Serial port 

• Parallel port 

• Clock 

• Software 

• Fits in short slot 

40HEG s 819 ««i*l495 


» CGA/EGA compatible 
» 13" screen 
» 31mm pitch 

Uses Linear Voice Coil Activator. Heads park automatically 
at power down. Includes Seagate Full Height Hard Disk, 
Cable, and Mounting Rails. Boots from Hard Disk. 
One Year Warrantv* 

pc's limited at multifunction cardi 

8 199 wok 

Full IBM EGA compatibility. 
Full 256K Video RAM installed a 
no extra cost. 



XT ™ POWER 1 30 W 

s 99 

Solve Your Power Problem. 
Directly replaces Power Supply in PC 
Fully XT™ compatible. 
One Year Warrantv.' 

ALLS OUTSIDE TEXAS, 1-800-426-M50 

S CAJLLS INSIDE TEXAS, 1-800-252-8336 

1611 Headway Circle, Building 3, Austin, Texas 78^54 

Sales Calls from anywhere in the country, (512) 339-6962 

Technical Support Calls, I -(800) 624-9896 or PC's Limited BBS (512) 339-4127 

Customer Service Calls, 1(800) 624-9897 or MCI MAIL: PC's LIMITED 

Telex No. 9103808386 PC LTD FAX (512) 339-6721 

Piggy Back Board 559 w /OK 

• Expandable to 3 MEG (1.5 on Board/ 1.5 on Piggy Back Board) • Supports 

64 or 256K RAMS • Parallel Port • Serial Port (2nd serial option) 

• Fully compatible with IBM CGA, Plantronics COLORPLUS, 
IBM Monochrome, and Hercules compatible graphics modes. 

• Includes Parallel Port and fits in a "short" slot. 



For warranty service; one year limited warranty on PC's Limited products. Contact Technical Support for a Return Authorization 
Number (RMA). Returns must be accompanied by your RMA, the invoice, and a brief explanation. During the warranty period. PC's 
Limited willrepairor replace items at our option. 

Any item bought from PC's Limited may be returned within 30 days from the date it was shipped for a full refund of your purchase price. Returned 
items must be as-new. not modified or damaged, with all warranty cards, manuals, and packaging intact. Returned items must be shipped prepaid 
and insured, and must bear a PC's Limited Credit Return Authorization (CRA) on the shipping label. Call PC's Limited Customer Support Department 
forCRA. No credit issued after 30 days from date of shipment. 


When shopping for PC products, ask our competitors about their refund policies 

Mitsubishi. Intel, ItlM, Hercules. Plantronics, Seagate. Western Digital. AT&T, Compaq. Tandy, Leading Edge, Sperry, Wyse.and ITT are registered 
trademarks of their respective companies. IBM PC. IBM XT. IBM AT. are trademarks of IBM Corporation, leading Edge VC. Sperry PC. Wyse PC, 
Compacj Deskpro, AT&T 6300. Tandy 1000 and Tandy 1200 are trademarks of their respective companies. 

Some quantities may be limited. PC's Limited sells equipment certified to be compliant with FCC Class B standards. All prices are subject to change 
without notice. 

Inquiry 231 

OCTOBER 1986 • BYTE 151 



Public Domain 


by Robert Morein 155 

An Icon Tutorial 

by Ralph E. Griswold 

and Madge T Griswold 167 

Enhanced Console Driver 

by Anthony lackln 183 


by Roedy Green 193 


by Robert A. Baumann 203 

CP/M Hall of Fame 

by Brock N. Nleeks 219 

I BEGAN MY "RESEARCH" on this theme last December by placing a call 
for submissions in the Fixes and Updates section. Within weeks, readers sub- 
mitted over a hundred programs. I have considerable regret that we can 
highlight only five of these, though I think you will agree that they are indeed 

Bob Morein's PD PROLOG is a public domain implementation of the fifth- 
generation language for MS-DOS and PC-DOS environments. Bob wrote the 
syntax to conform closely to the Edinburgh syntax, but his implementation 
contains several notable extensions. 

Ralph and Madge Griswold present a tutorial on Icon, a high-level language 
that emphasizes the processing of strings and structures. The language was 
originally implemented under UNIX, but it has been transported to other oper- 
ating systems, including MS-DOS. 

Anthony Zackin has written an enhanced console driver that will allow you 
to create your own user interface for DOS. This replacement for the ANSI.SYS 
file performs all of that file's functions plus many, many more. Read and be 

Roedy Green's Abundance is a FORTH-based, data-entry, database, screen- 
handling language that performs a variety of housekeeping tasks automatically 
The language was originally designed to serve charities, but it is now a com- 
plete business programming language. 

Bob Baumann has written a Zilog Z80 and CP/M 2.2 emulator. With it, you 
may well be able to run some CP/M software on your IBM PC or compatible. 
We therefore asked Brock Meeks to summarize some of the best public do- 
main CP/M programs. His selections are included in a "CP/M Hall of Fame." 

There is a tremendous amount of code associated with this theme. Abun- 
dance, for example, comes on 1 5 disks. BYTEnet, BIX, and the disk copy ser- 
vice will be able to provide most, but obviously not all. Please read the editor's 
notes in each article carefully for instructions on how to obtain the programs. 

In my mind, a much larger problem is that we cannot feature many more 
of the programs that were submitted. Although it was not ready in time for 
this issue, we hope soon to provide a new portable implementation of the 
SAIL language called PSAIL, which produces C code and uses run-time 
packages also written in C. 

Other submissions are available now, and we are placing many of them on 
BYTEnet and BIX. These include New York Word, a fine shareware word pro- 
cessor for the IBM PC family, and a TUrbo Editor, VTI00 emulator, and 
Mandlebrot utilities from Tim McGrath. In addition to these programs, we have 
uploaded the text of an interview that Dave Betz and I carried out with Richard 
Stallman, the author of GNU (GNU's Not UNIX), a UNIX-compatible software 

After reviewing a tremendous number of programs, I am pleased to report 
that the public domain is as vibrant and potent as ever. 

— ]on Edwards, Senior Technical Editor 

OCTOBER 1986 -BYTE 153 


Face it. Everybody needs somebody some- 
time. And even the best PC occasionally 
needs help with faulty power. 

So give your hard disc or critical-use 
system LINE 2" power conditioning. And 
eliminate those nagging problems that your 
PC can't prevent. Like voltage sags and 
surges. Brownouts. Spikes. 

LINE 2 Power Conditioners are designed 

specifically with your PC in mind. High 
inrush currents don't affect them. Neither 
do power problems. And they're amazingly 

A LINE 2 Power Conditioner can be 
your PC's best friend. And a friend in 
need is a friend indeed. Call us today at 
(619) 279-0831, or contact your local 
Square D distributor. 


A Subsidiary of Square D Company 

154 BYTE • OCTOBER 1986 

Inquiry 307 for End-Users. 
Inquiry 308 for DEALERS ONLY. 



by Robert Morein 

A public domain version of the 
fifth-generation language 

PD PROLOG, an implementation of 
the Edinburgh syntax of Prolog, was 
a prototype for the commercial Pro- 
logs of which I am also the author. I 
intended the syntax of PD PROLOG 
to conform so closely to the Edin- 
burgh syntax that it would be possi- 
ble to execute PD PROLOG success- 
fully with only W. F. Clocksin and C. S. 
Mellish's Programming in Prolog 
(Springer-Verlag, 1981) as a compan- 
ion. Only two things distinguish PD 
PROLOG by their absence: debugging 
facilities and the definite-clause gram- 
mar syntax. And it contains several 
notable extensions to the Edinburgh 
syntax. [Editor's note: For an introduction 
to Prolog, see "Prolog Goes to Worfe" by 
Clara Y. Cuadrado and \ohn L. Cuadrado in 
the August 1985 BYTE, "logic Program- 
ming" by Robert Kowalski in the same issue, 
and Prolog for Programmers by Feliks 
Kluzniak and Stanislaw Szpakowicz 
{Academic Press, 1985).| 

PD PROLOG runs under MS-DOS 
and PC-DOS and uses all memory 
allocatable by DOS. There is a definite 
advantage to having 640K bytes of 
RAM, so coresident programs that 
use a lot of memory should be ex- 
cluded from the system. 

PD PROLOG is not a completely in- 

tegrated programming environment 
in the manner of BASIC because the 
edit and execute modes are distinct. 
You compose a Prolog program using 
a text editor (this can be done from 
within the Prolog environment), "con- 
sult" the program, and then execute 
it by giving goals. Users of small resi- 
dent auxiliary editors or "notepad" 
programs will find the process con- 
siderably streamlined and fairly in- 
teractive. Also, the latest version of PD 
PROLOG comes with a screen- 
oriented text editor. 

That is not to say that PD PROLOG 
is not a conversational language— the 
system prompt is ?-. which is the 
equivalent of "I am ready for your 
questions." A structure that you enter 
at this point is not construed as new 
knowledge to be entered into the 
knowledge base— rather, it serves as 
the initial goal of the backward-chain- 
ing inference engine, which is Prolog's 
inherent form of reasoning. 

The fundamental Prolog statement 
is the Horn clause, or simply clause, 
which has two manifestations: 

head( params ) :- body( params ). 


unit( params ). 

In the first type of clause, a rule, the 
head is true if the body is true: hence 
the head is the consequent and the 
body the antecedent. The unit clause, 
also known as a fact, has no body and 
is always true if selected. The params 
are optional variables or structures 
that, when present, pass and return 
values to the clauses and allow Pro- 
log's pattern match to discriminate 
among clauses by embedded struc- 
ture. A set of clauses with the same 
name, if they have the same number 
of params in the head, is variously 
referred to as a module or function. 

Pattern Matching 

The selection process is guided by 
the resolution principle, one of the 
pillars of the Prolog computational 
process. The resolution principle is 
derived from predicate calculus and 
is closely related to proof by negation. 
But the basic operation is nothing 


Robert Morein is president of Automata 
Design Associates (1570 An an Way. 
Dresher, PA 19025) and a physicist with an 
interest in non-von Neumann architectures 
and symbolic computation. He is the author 
of PD PROLOG and commercial Prolog de- 
velopment systems. 

OCTOBER 1986 -BYTE 155 


more than pattern matching. Thus 
Prolog would match the structure 

alpha( 1, X). 

with the structure 

alpha( Y, 2 ). 

and the structure 

'has a feature' ( chimney, door; window ). 

with the structure 

'has a feature' ( X, Y, window ). 

Logic has no regard for computa- 
tional complexity or the methods of 
finding the solution; it merely rigidly 
prescribes the correctess of the pro- 
posed solution and in this regard is 
hopelessly detached from the real- 
world considerations of finite 
resources and time. The method uni- 
versally used for finding a solution is 
the backtracking depth-first search, 
which proposes to find the solution 
with the least expense, although it can 
be misled, which causes the pro- 
gram's downfall. 

The backtracking search is a me- 
chanical maze-searching procedure 
that can best be described visually. 
Imagine the clauses constituting a 
program as a tree, the search tree, 
through which Prolog will run, search- 
ing for satisfaction like a mouse 
searching for cheese. The ends of the 
tree are terminated with* unit clauses, 
which are true if matched. The ques- 
tion becomes, is the tree finite or 

Consider the following set of 

a :-b. 
b :- c. 
c :- b. 

If you give the program the goal "a" 
at the system prompt (i.e., if you ask, 
"Is a true?"), the search will recurse 
infinitely, an example of misleading 
the backtracking inference engine. 
The set of clauses should be 

a :- b. 

b :- c. 
c :- b. 

so that the system will see the 

economical solution: a if b, b is true, 
therefore, a is true. 


Prolog variables are denoted by a 
capital first letter. Thus, X, Varsym, 
and Param3 are legitimate variable 
names. A variable's scope is limited 
to the clause in which it appears and 
to the particular instance of usage of 
that clause. In the clause 

a( X, Y ) :- b( Y, X ) 

the values of X and Y are entirely 
private and are not seen even by 
other calls to that clause elsewhere in 
the search. 

The binding of a variable to a value, 
known as "instantiation," is temporary 
in the following sense: The backtrack- 
ing search requires that Prolog run in 
reverse as well as forward, and a vari- 
able must frequently be returned to 
the unassigned state. In forward 
search, the value of an instantiated 
variable cannot be reassigned, as it 
can in a conventional language. Pro- 
log variables are "polymorphic— they 
may be bound to a structure, list, 
number, or anything at all. Once 
bound, the variable itself disappears, 
being transparent to the resolution 


A list is a data structure of the form 

[element! , element2, element3, . . . ]. 

The elements may themselves be lists 
or other data structures. The vertical 
bar, or list extraction operator, com- 
bines the virtues of LISP'S car and cdr 
operators. For example, [X|Y] is the 
list with a first element of X and a re- 
mainder list of Y Prolog's pattern 
matcher matches the two structures 

[X|Y] = [a.bAd] 

so as to set X = a, and Y = [b,c,d]. 
A functor-argument set is a basic 
structure: We take a group of struc- 
tures separated by commas, enclose 
them in a set of parentheses, and give 
them a functor name, such as 

alpha( X, 33, beta( xxx ), [a.b.c] ). 


A classic example illustrates how Pro- 
log constructs data structures, thus 

leaving the realm of passive tree 

Clause 1: 
append( [], L, L ). 

Clause 2: 

append( [X|List1], List2, [X|List3] ) :- 
append(List1, List2, List3). 

The general scheme is this: The 
definition consists of one fact and one 
rule. The rule will be used over and 
over again until what little is left of the 
goal given matches the fact. The 1 1 
stands for empty list. 

The question that serves as the ini- 
tial goal is 

append( [a,b,c], [d,e,f], Result ). 

Clause 2 is invoked with arguments 

( [a.b.c], [d,e,f], Result). 

Clause 2 is invoked again with 

( [b,c], [d,e,f], List3 ). 

Clause 2 is invoked again with 

( [b], [d.e.f], List3 ). 

The arguments are now 

([ ], [d.e.f], List3 ). 

Clause I now matches. Since it is a 
unit clause, the search terminates. 

How does this cause a list to be con- 
structed? The key is in the third argu- 
ment, which returns the constructed 
list to the uppermost, or first invoked, 
rule. The inference engine matches it 
to [X | List3] in clause 2. Now let's trace 
this (in figure I) as clause 2 is suc- 
cessively invoked. 

In clause I , L is [d,e,f] for the follow- 
ing reason: Notice that clause 2 never 
alters List2 but supplies it to whatever 
clause it invokes. Thus, L in clause 1 
is the original List2, or [d,e,f]. 

This example would not have 
worked if the order of clauses I and 
2 were reversed. The backtracking, 
depth-first search strategy, which 
always attempts to use the first clause 
encountered, would have looped 

Built-in Predicates 

Built-in predicates are required to 
make PD PROLOG a programming 


156 BYTE • OCTOBER 1986 


CALL1 !^™ E 1-800-528-1054 


Air Express Shipp 



Charge for Bank Cards 

See Details Below 


Brother All Models Call 

Cannon Laser Printer SI 949 

Citizen MSP-10 S279 

MSP-15 S379 

MSP-20 $315 

MSP-25 $479 

Premier35 $479 

Diablo D-25 $489 

635 S1035 



All Printer Models . . . . 


Fujitsu Call 

IBM Proprinter $399 


6100 $349 

6300 $669 

NEC 3510,3550.3515.3530 $729 

8810.8830. 8850 $1039 

P5 $959 

P6 $429 

P7 $609 


All Printer Models Call 

Panasonic 1080 $ 1 99 

1091 $239 

1092 $309 

1592 $425 

KXP3151 $399 

Maxell MD-2 (Qty 100) $100 

Sony M D/2 (Qty 100) $119 


Amdex All Monitors Call 

N EC All Monitors Call 

Princeton Graphics . . Call 

Zenith All Models Call 


Qume QVTGreen 101 $299 

QVT Amber 101 $314 

Wyse 30 $299 

50... $419 

75 $559 

Wyse 85 $439 

Wyse 350 $859 

Zenith z-22 $455 

Z-29A $559 

Z-49 Call 


Anchor Automation 

Signalman Express $235 

Practical Peripherals 

Practical 1 200 Baud S1 24 



AST Advantage $329 

Rampage AT $445 

Rampage PC $239 

Six Pack Plus $159 

Hercules Color Card $149 

Graphic Card $1 79 

Intel Above Board PC(1 1 1 0) $239 

Above Board AT (2010) $329 

Above Board PS/AT (2110) $369 

Paradise Modular Graphic06-1 $239 

FivePak $115 

Plus Development 

PlusHardCard20 Megabyte $669 

Quadram Gold & Silver Boards Call 

Quadlink $329 

Quad EGA+ $359 

Tec Mar Graphics Master $445 

Captain No Memory $169 



PC 1 Drive 256K 

XT1 Drive 256K 

XT1 Drive 20 Meg 640K . 




Portable II — 2 Drive 




All Modems Call 


All Printer Models Call 

Toshiba 321 Parallel & Serial $449 

341 $769 

P351 Parallel & Serial $919 

Laser Printer Call 


Keytronics 5151 $159 

PLOTTERS Epson Hi-80 Call 

Prometheus All Models Call 

US Robotics Courier 2400 S369 

Password 1200 $175 

Microlink 2400 $369 


Iomega Bernoulli 10 meg $1 359 

Bernoulli 20 meg $1749 

Bernoulli 40 meg $2469 


20 meg w/Western I/O . 



Sr. Partner Dual Drive $ 11 09 

Exec. Partner Dual Drive . ... . -r . . $1 759 

Other Models Call 


T-1100 ..$1299 

T-1100Plus Call 

T-3100 Cail 


SperrylT $1999 

Other Models Call 


Wyse pc 1 100-1 $979 

Wyse pc 1100-20 $1539 

Zenith Computer Products 
SAVE u P to 50% 

All Models Call 

256 Memory, One 360K Brand Name 
Floppy Drive • 135 Watt Power Supply, Slide 
Case, AT Style Keyboard 8 MHz Clock Speed, 
(Keyboard Selectable), 8 Expansion Slots 


Flight Simulator . . 

PC Logo 

Typing Instructor . 
Typing Tutor III . . . 





Canon PC-20 

Canon PC-25 . . , .. . 

IBM PC and 100% Compatibles 


Lotus 1-2-3 


Spreadsheet Auditor 3.0. . . . 



. $82 

. . $48 


C Compiler (Microsoft) 

Fortran Compiler (Microsoft) . , 

Lattice C Compiler 

Macro Assembler (Microsoft) . 
Pascal Compiler (Microsoft). . . 

Quick Basic 2 

Run C Interpreter 

Turbo Pascalw/8087 & BCD . . 
Turbo Database Tool Box 




. $84 







Harvard Total Project Manager $262 

MicrosoftProject $219 

Super Project Plus $239 

Timeline 2.0 $209 


CompuServe Starter Kit Best Price 

CrosstalkXVl $92 

MSAccess1.01 $139 

PFS Access $76 

Remote $92 

Smartcom II $83 


Enable1.1 $319 

Framework II Call 

Smart Software System $379 

Symphony Call 



Diagram Master 



Microsoft Buss Mouse 
w/PC Paintbrush 3.0 . . 

Microsoft Chart 

Microsoft Serial Mouse , 


PC Draw . 



Leading Edge Word Processor 
Leading Edge W/P w/Spell & Mail . 


Microsoft Word 3.0 

Multimate Advantage 

PFS: Write w/Spell Checker 

Wordstar w/Tutor 

Wordstar Pro Pack 

. $72 
. . $55 

Supercalc 4 $259~| 

Word Perfect (Ven4 
Wordstar 2000 + 2 


Click Art Personal Publisher $99 

PC Mousew/Dr. Halo II $99 

PC Paint w/Mouse $115 

PFS Graph $76 

Printmaster $29 

Signmaster $132 

Turbo GraphixTool Box Call 



1 DIR 


Norton Utilities 3.1 .'. 



Sidekick (Unprotected) 

Sidekick— Superkey (Bundle) . 

Travelling Sidekick 

Turbo Prolog 

Sideways 3.1 




Dollars & Sense w/Forcast $94 

Tobias Managing Your Money Call 


Clipper $329 

Cornerstone $67 

dBase II Call 

dBase III Plus Call 

Extended Report Writer $74 

Knowledgeman II $249 

Nutshell 2.0 $59 

PFS: File $76 

PFS: Report $67 

Quickcode $1 38 

QuickReport $138 

Reflex $82 

Think Tank $91 

R:Base 5000 

SystemV $329 

Many other titles available. 

Inquiry 75 for MS-DOS Products. Inquiry 76 for all others. 


Order Line: 1-800-528-1054 
Order Processing: 602-224-9345 

2222 E. Indian School Rd. 
Phoenix, Arizona 85016 

Store Hours: Mon-Fri 10-5:30 

Saturday 9-1 
Order Line Hours: Mon-Fri 7-5:30 

Saturday 9-1 
Order Processing Hours: Mon-Fri 10-3 

Product shipped in factory cartons with manufacturer's warranty. Please add $6.00 per order for UPS ground shippi ng on orders up to 10 lbs. Orders 10 lbs. 
and under you pay for ground service, receive air service at no extra charge. Available on orders 1 1 -30 lbs. $17 for air service. Prices & availability subject to 
change without notice. Send cashier's check or money order..."all other checks will delay shipping two weeks. 


system. In one category of such built- 
in predicates is the cut, symbolized by 
an exclamation point, which modifies 
the search behavior. Without the cut, 
implementing the resolution principle 
would be practically impossible. Main- 
taining the search tree in such a way 
that backtracking is possible is feasi- 
ble only for portions of a Prolog 
search. Once the program ascertains 
that the path chosen is a correct one. 
committing the system so that back- 
tracking is not possible permits 
reclamation of large amounts of mem- 
ory. It would be very desirable to use 
the exclamation point in conjunction 
with append in the following way: 

modified append( X, Y, Z ) :- 

append( X, Y, Z ), ! 

Thus, modified append recog- 
nizes that there is only one way to ap- 
pend lists, and backtracking informa- 
tion need not be retained. The ! 
means that memory used need not 
be proportional to the amount of time 
spent in forward search. The cut is an 
extralogical feature, one that com- 
promises Prolog's claim to be an im- 
plementation of predicate calculus, 
but it is necessary for practical 

Other built-in predicates construct 
data structures or have residual side 
effects. Accomplishment by side ef- 
fect is typical of the way that parsers, 
or expression recognizers, construct 
data structures while seeming to 

answer the useless question "Is this 
a sentence in the language?" This is 
not a new idea. The predicate read 
creates a new structure in response to 
keyboard input or input from a file. 
The predicates asserta and assertz 
add new clauses to the database. 
Thus, if you were interested in adding 
integrated editing capability to PD 
PROLOG (so that you could add 
clauses without exiting to an external 
editor), you might write the following 

add :- read( X ), assertz( X ). 
rem :- read( X ), retract( X ). 


The predicate see tells the PD PRO- 
LOG shell to accept goals from a file 
in place of the keyboard. You could 
write a form of another built-in predi- 
cate, consult, with the following 

consultfile( Filename ) :- 
see( Filename ), 
doread( X ), 
assertclause( X ), 
var ( X ), 
see( Filename ), 
see( user ), !. 

doread( X ) :- read( X ), !. 
doread( ). 

assertclause( X ) :- assertz( X ), !. 
assertclause( _ ). 




Clause 2 

[X | List3] 

(List 3 = [b,c]) 



Clause 2 


[X' | List3'] 

(List 3' = [c]) 



Clause 2 


[X" | List3"] 

(List 3" = []. the empty set) 

Clause 1 

c L 

(in Clause 1 L = [d.e.f]) 


Figure I : The successive invocation of clause 2 {defined in the text of this 
article) with the end result L = [d,e,f]. 

Note that repeat always succeeds 
upon backtracking. This causes the 
read . . .assert loop. The form of loop 
control depends upon the nature of 
the parameter of doread. When end 
of file is reached, the read predicate 
fails, and doread returns an uninstan- 
tiated variable. This is accepted by as- 
sertclause, although assert fails, so 
the variable test var is executed. If end 
of file has not occurred, var fails 
because X is a bound variable, so con- 
trol backtracks to repeat which always 
succeeds, causing another clause to 
be read. If end of file is reached, var 
succeeds, the input stream is closed 
by see( user ), and consultfile suc- 

The Control Strategy of 

It has been thought by some that the 
backward-chaining inference engine 
built into Prolog prescribes and limits 
the method of problem solving. This, 
the opponents say, implies that a lan- 
guage like LISP, which manipulates 
structures on a lower level, is better 
for serious work because you can 
build an inference engine especially 
for the problem at hand. 

I would argue, however, that while 
backward chaining is always conve- 
niently available for problem solving, 
it can be viewed on another level as 
simply a control structure. All lan- 
guages have control structures, which 
simply represent the bottom end of 
the capabilities of sophisticated in- 
ference engines. No one would sug- 
gest that the if, for, do, or while state- 
ments of the C language delimit what 
can be written in the language. 

The simplest inference engine you 
can construct in Prolog is the one 
used by Prolog itself: 

g( true ) :- !. 

g((E1,E2)):-!,g(E1 ), g( E2 ). 
g( E ) :- clause( E, Antecedents ), 
interpret Antecedents ). 

The ! in the first clause modifies the 
behavior on backtracking so that the 
Prolog system never attempts the 
other g clauses. This is desirable 
because true is a Prolog quantity that 
is, by definition, true. The second 
clause simplifies a logical expression 


158 BYTE • OCTOBER 1986 

put your engineers on line, 
not in line. ^^^ 


How many long unproductive hours 
have you spent "in line" for your simula- 
tion? Well, no more. MICROCAP and 
MICROLOGIC can put you on line by 
turning your PC into a productive and 
cost-effective engineering workstation. 

Both of these sophisticated engineering 
tools provide you with quick and efficient 
solutions to your simulation problems. 
And here's how. 


Your Analog Solution 

MICROCAP is an interactive analog 
circuit drawing and simulation system. 
It allows you to sketch a circuit diagram 
right on the CRT screen, then run an AC, 
DC, or Transient analysis. While pro- 
viding you with libraries for defined 
models of bipolar and MOS devices, 
Opamps, transformers, diodes, and much 
more, MICROCAP also includes features 
not even found in SPICE. 

MICROCAP II lets you be even more 
productive. As an advanced version, it 
employs sparse matrix techniques for 
fester simulation speed and larger net- 

works. In addition, you get even more 
advanced device models, worst case capa- 
bilities, temperature stepping, Fourier 
analysis, and macro capability. 

Your Digital Solution 

MICROLOGIC provides you with a 
similar interactive drawing and analysis 
environment for digital work. Using 
standard PC hardware, you can create 
logic diagrams of up to 9 pages with each 
containing up to 200 gates. The system 
automatically creates the netlist required 
for a timing simulation and will handle 
networks of up to 1800 gates. It provides 
you with libraries for 36 user-defined 
basic gate types, 36 data channels of 256 
bits each, 10 user-defined clock wave- 
forms, and up to 50 macros in each net- 
work. MICROLOGIC produces 
high-resolution timing diagrams showing 
selected waveforms and associated 
delays, glitches, and spikes — just like the 
real thing. 

"Typical MICROLOGIC Diagram" 

Reviewers Love 
These Solutions 

Regarding MICROCAP ... "A highly 
recommended analog design program" 
(PC Tech Journal 3/84). "A valuable tool 
for circuit designers" (Personal Software 
Magazine 11/83). 

Regarding MICROLOGIC . . . "An effi- 
cient design system that does what it is 
supposed to do at a reasonable price" 
(Byte 4/84). 

available for the Apple II (64k), IBM PC 
(128k), and HP-150 computers and priced 
at 5475 and S450 respectively. Demo 
versions are available for 575. 

MICROCAP II is available for the 
Macintosh, IBM PC (256k), and HP-150 
systems and is priced at S895. Demo 
versions are available for S100. 

Demopricesare credited to the 
purchase price of the actual system. 

Now, to get on line, call or write today! 

Spectrum Software 

1021 S. Wolfe Road, Dept. B 
Sunnyvale, CA 94087 
(408)738-4387 inquiry 287 


by subdividing it into two smaller 
problems, or goals, while the cut 
blocks the third clause from ever try- 
ing to satisfy a logical goal. The third 
clause actually searches the database 
with the built-in predicate clause and 
tries to satisfy the antecedents of 
what it finds. In most cases, the third 
clause will be invoked first, then the 
second, and the first possibly not at 

Thus, if you have a database of facts 

alpha( X, Y ) :- beta. 


alpha( X, Y, z ). 

and you give the Prolog system the 

clause( alpha( Var, const ), Body ) 

a search will be made for clauses in 
the database matching the descrip- 

tion given to clause. The only match 
would be 

Var = X, Body = beta. 

Backward chaining means to reason 
from a presumed form of the solution 
to find the proof that the solution is 
true. But this is only the basic motif 
of programming. Prolog is not a true 
implementation of predicate calculus 


A Prolog Strategy for 
Telecommunications Routing 

In my work for a large corporation, 
I was able to solve a common tele- 
communications problem in a flexible 
way. This corporation uses a private 
telephone network to communicate 
between various divisions located 
throughout the United States. The 
switching algorithm is handled locally 
utilizing routing tables prepared by a 
Prolog program. Optimal routing com- 
puted by an intelligent strategy is more 
efficient than a rigid star network 


My program implements these con- 
cepts in PD PROLOG. In figure A. the 
large boxes represent corporate divi- 
sions, and the small boxes represent 
telephones, numbered 1 through 16. 
The short lines represent local (direct- 
connect) phone lines, and the heavy 
lines represent long-distance lines. The 
phones connected by long-distance 
lines are gate phones between the in- 
dividual offices. 

The rules for making a call are as 

Figure A: Example layout for a private phone network with 16 telephones in four offices. 

1 . If two phones are connected to the 
same local line (e.g., PH01 and PH02). 
the call will be routed through direct- 
ly. One local call is charged. 

2. If two gate phones are connected by 
a long-distance line (such as PH04 and 
PHI 3), the call will be routed through 
directly. One long-distance call is 

3. If two phones are not covered by the 
preceding cases (such as PH05 and 
PHI I), the call will first be connected 
to the local gate phone. One local call 
is charged. Then the call will be con- 
nected by a long-distance line to the 
next gate phone (it is picked by the 
Prolog program). One long-distance 
call is charged. The rest of the handling 
will be in the same manner until the 
call is finally through. The total charges 
for the call will depend on how many 
intermediate connections are made. 
This is one of the advantages of using 
local switching. 

A text file contains a list of divisions, 
phone numbers, and gate phones. An- 
other text file contains all the physical 
connections between two divisions and 
the type of each connection. The 
reason for keeping two text files is that 
adding or removing a phone number 
will have no effect on the physical con- 
nections. On the other hand, changing 
the physical connections will not im- 
pact the phone numbers. 

Li Su (729 East 11th St. #301, Richfield, 
MN 55432) is a systems analyst working in 
the area of network management. 

160 BYTE • OCTOBER 1986 


$ 89 Price 

■ Separate Compilation 

■ Native Code Generation 

■ Large Memory Model Support 

■ Multitasking 

■ Powerful Debugging Tools 

■ Comprehensive Module Library 

■ Available for the PC and the VAX 

decrease your overall development cycle 
and produce more reliable, more 
maintainable code. 

MODULA-2/86 $89 

Includes Editor, Run Time System, Linker, 
8087 Software Emulation, Binary Coded 
Decimal (BCD) Module, Logitech's com- 
prehensive library, Utility to generate 
standard .EXE files. AND more! 

with 8087 Support $129 

^ PLUS $189 

For machines with 512K of RAM . 
Increases compilation speed by 50%. 

(Source level!) $69 

The ultimate professional's tool! Display 
source, data, call chain and raw memory. 
Set break points, variables, pinpoint bugs 
in your source! 


Features a Post-Mortem Debugger (PMD). 
If your program crashes at run-time the 
PMD allows you to analyze the statusof 
the program and locate the error. Also 
includes a Disassembler, Cross Reference 
Utility,and Version that allows conditional 


Source code now available for 
customization or exemplification. 



Build windows into your programs. Features 
virtual screens, color support, overlapping 
windows and a variety of borders. 


Figures out dependencies and automatically 
selects modules affected by code changes 
to minimize recompilation and relinking. 


Debugger anld ROM Package 

Still available at tfn introductory price! 



"Turbo Pascal. a very good system. 
But don 't make the mistake of trying 
to use it for large programs" 

Niklaus Wirth* 

Our Translator makes it even easier for 
Turbo users to step up to Modula-2/86. 
It changes your Turbo source code 
into Modula-2/86 source, solves all the 
incompatibilities, and translates the 
function calls of Turbo into Modula-2/86 
procedures. Implements the complete 
Turbo libraries! 

Call for information about our VAX/VMS 
version, Site License, University Discounts, Dealer 
& Distributor pricing. 

30 Day Money Back Guarantee! 

To place an order call our special toll free 
number: ~~~ *^^ „„ A „ 


in California 

inquiry 173 800-552-8885 

*as reported in Mierb Cornucopia. August-September 19(S5.1Furbo Pascal is a registered trademark of Borland international, 


Holiday Offer 

Step up to the power of LOGITECH 
1GDULA-2/86 at a saving of nearly 
$100 off our usual low prices! We're 
offering a complete tool set including 
our compiler with 8087 support (for use 
with or without an 8087), our Turbo 
to Modula-2/86 Translator, Run Time 
Debugger, and Utilities in one holiday 
package at a special price! 

V/^ITC I want to step up to 


Here's the configuration I'd like: 

□ Special Holiday Package 


□ Logitech Modula-2/86 


□ with 8087 support 


□ Plus Package 


□ Turbo to Modula Translator 


□ Run Time Debugger 


□ Utilities Package 


□ Library Sources 


□ Window Package 


□ Make Utility 


□ ROM Package 


Add S6.50 lor shipping and handling 


residents add applicable sales tax. Prices valid 

in U.S. only. 

Total Enclosed 5 

□ Visa □ MasterCard □ Check Enclosed 

Card Number 

Expiration Date 






. Zip 


Logitech, Inc. 

805 Veterans Blvd. 

Redwood City, C A 94063 

Tel: 415-365-9852 

In Europe: 

Logitech SA. Switzerland 

Tel: 41-21-879656 

In Italy: Tel: 39-2-215-5622 

•ft • • •« • • 4 


and in fact has a procedural as well 
as logical interpretation. The side ef- 
fects of a Prolog proof, which may in- 
tentionally never be completed, are 
usually the most important part. 
These effects are the accumulated ir- 
reversible effects of the built-in 
predicates, which can change the 
state of the system over time. The 
assert and retract predicates allow a 
Prolog program to modify the source 
code as a routine procedure and let 
you construct systems that learn. 

The general problem solver notion 
(GPS) of Newell and Simon can be im- 
plemented easily in Prolog and ex- 
emplifies a forward-chaining inference 
engine (see listing I). This is schematic 
code that ignores the great problem 
of all forward-chaining engines, which 
is to narrow down the search space 
and obtain optimal solutions. But con- 
sider for a moment a "travel" prob- 
lem. You have a map of the United 
States. You wish to travel from New 
York to San Francisco. The road map 

is a network of nodes, each consisting 
of the intersection of two or more 
roads. Permitted moves are along 
roads. The procedure is roughly this: 

1 . Find a town closer to the destina- 

2. Qualify the move. Is the town ac- 
cessible by interstate, for example? 

3. Select a method of travel (a road 
and conveyance). 

4. Add this to the route that is being 

5. Repeat this procedure unless the 
goal has been reached. 

The monitoring of large systems can 
be easily handled through the state- 
variable approach. In such cases it 
does not suffice to consider only the 
variables local to a particular subpro- 
cess, since the goal is to avert hazar- 
dous conditions as well as recognize 
them. A Prolog system obtains a com- 
plete characterization of state, which 
is saved in added clauses. A logical 
analysis and recharacterization sue- 

Listing I : A simplified general problem 



progress( Current, Goal, 


_sof ar 

, Path. 


) :- 

Current = Goal , ! . 

progress( Current, Goal, 


_sof ar 

•, Final 


) :- 

find_move( New ), 

qua 1 i f y( New ) , 

select_op( Current, 


Method ) 

add_to_path( Path_sofar, 





sofar ), 

progress( New, Goal 

, New. 


.sofar , 




Listing 2 : The state-variable monitoring approach. 

mon i tor_process :- 
repeat , 

check_a I arm, 
fai I . 

get_state_of_system :- 

retractal I ( state_of_system ), 

readf Temperature ), 

read( Pr 




rt( state_off temp, Temperature ) ), 
rt( state_of( pressure, Pressure ) ). 

s t a t e_o f ( t e 
state_of( pr 

check_a I arm 

Max i s T * 
Max > 340, 
a I arm_operator 

checka I arm. 

mp, T ), 
essure, P 


ceed each other indefinitely. The ex- 
ample in listing 2 gives the idea. 

Prolog Operators 

Prolog is a simple language compared 
to something like Common LISP. Pos- 
sibly jealous of LISP'S complexity, syn- 
tacticians worked arduously to com- 
plicate Prolog's syntax. The user-de- 
finable operator, really a functor in 
disguise, was found to serve very well. 
A simple Prolog clause might be 

alpha( argl, arg2 ) :- 

argl = arg2, argl > 40. 

but if we declare it as an operator 

op( 40, yfy, alpha ) 

where op is a built-in predicate, 40 is 
the precedence, and yfy describes the 
associative properties, it becomes 
possible to write 

argl alpha arg2 :- 

argl = arg2, argl > 40. 

In DECsystem-10-compatibIe Prolog 
it also becomes possible to write 
complex expressions like 

a op1 b + c 

- d op2 u xx v 

- y ** d op3 op4 

To translate this, Prolog uses the dis- 
play predicate, which displays opera- 
tor-loaded expressions in functor for- 
mat. Note that an operator performs 
no function by itself but is merely 
food for Prolog's inference engine, 
just like a functor. 

An exception jvas made for arith- 
metic expressions. Evaluation of ex- 
pressions containing the operators +, 
-, * and / can be forced by the built- 
in predicate is. The goal 

X is 3 + 4 

which is really the same as 

'is'( +(3,4), X ) 

results in X = 7, while the goal 

X = 3 + 4 


'='( +(3,4), X ) 

gives the surprising result 

X = 3 + 4. 

The dual mode facilitates symbolic 
manipulation of arithmetic expres- 


162 BYTE • OCTOBER 1986 


i ^*S^ 


Just for the holidays we've wrap- 
ped up LOGIMOUSE and its Plus 
Software with Generic C ADD and 
PC Paintbrush into the graphics 
package of the year. LOGIPAINT- 
&-DRAW is the complete graphics 
toolkit for combining freehand 
and technical drawing. 

Use LOGIPAINT-&-DRAW to design 
your holiday greeting, enhance your 
spreadsheets, graphs and memos,or create 
and personalize a map or mechanical. Just 
create your CADD drawing, import it into 
PC Paintbrush, and embellish it with paint 
sketches and fancy fonts. 

At a saving of almost $50 off our usual low 
prices, LOGIPAINT-&-DR AW is a holiday 
package you can't afford to pass up. 

LOGIPAINT-&-DRAW includes : 

with Plus Software 

LOGIMOUSEis the high resolution 
(200-dot-per-inch) mouse that is ideal for 
CADD and paint. It connects directly to 
€\t serial port of any IBM PC/XT/AT or 
compatible, with no pad or external power 
supply required. The Plus Package is our 
tqp'of-jthe-Iine mouse software featuring a 
pop=upmenu system,ait automatic mouse 
configurator, a unique mouse interfacefor 
Lotus 1-2-3, and a mouse based text editor. 


LOGIC ADD- Generic 
CADD 2.0 and Dot Plot 

Generic CADD is the sensational, 
new CADD package that offers 
the features and performance of high- 
priced at an unbelievably low price. The 
package alsoincludes DotPlot, the add-on 
utility that turns your dot matrix printer 
into a plotter. 

LOGIPAINT- PC Paintbrush 

PC Paintbrush is the most advanced 
paint set available for the PC. It's the 
preferred choice of professional users, 
but with its icon menus for both 
graphics and text it's easy and 
fun for beginners as well. It offers 
complete graphic capabilities as 
well as 11 type fonts and a palette 
of 16 colors. 

with Borland's Reflex 

Reflex, Borland's amazing data- 
base management program, flies 
with LOGIMOUSE! We offer 
Reflex with LOGIMOUSE and 
the Plus Package Software at a 
very special price! 

Inquiry 174 

LOGIMOUSEis a registered trad emark of LOG ITECH. Lotus and 1-2-3 are trademarks of Lotus Development Corp. 
Reflex is a trademark of Borland- Analytica. Generic CA DD is a trademark of Generic Software. Inc. PC Paintbrush is 
a registered trademark of ZSof t Corp. 



» place a credit card order call our 
special toll-free number: 


Call toll-free in California: 


• ••••••••••• •'• • • • • • • • • ••••••• 

'VT'T^C] I want to add the power of 
I EjO LOGIMOUSE to my holidays! 


□ LOGIMOUSE w/Driver 3.0 $99 

□ LOGIMOUSE w/Plus Software $119 

□ LOGICADD w/Logimouse $189 
& Plus Software 

□ LOGIPAINT w/Logimouse $169 
& Plus Software 

□ REFLEX w/Logimouse & $199 
Plus Software 

For my computer model: . 

30-Day Money-Back Guarantee 

□ VISA □ MasterCard □ Check Enclosed 

Add 56.50 for shipping and handling. Calif, 
residents add applicable sales tax. Prices valid 
in U.S. only. 

Card Number 

Expiration Date 





State Zip 

F D hone 



Logitech, Inc. 

805 Veterans Blvd. 

Redwood City, C A 94063 

Tel: 415-365-9852 

In Europe: 

Logitech SA, Switzerland 

Tel: 41-21-879656 

In Italy: Tel: 39-2-215-5622 

Inquiry 41 

If You Need 

Data Communication 


Try BitCom™ 3.0 

Before you invest in costly and hard 
to use communication software, look 
into BitCom 3.0. More than 100,000 
users told us they prefer BitCom over 
other communications software. 
Here are just some of the reasons: 

Simple User Interface 

While other programs force you to 
type commands after commands, 
BitCom just gives you a form to fill 
out. To help you select the correct 
answer, there are even multiple 
choices for you to pick. Once you set 
up the parameters for communica- 
tion, you can startup BitCom without 
even touching a key. 

Flexible File Transfer 

Now, BitCom 3.0 supports the most 
popular public domain file transfer 
protocols including XMODEM CRC, 
YMODEM and batch file transfer. 
You can send and receive multiple 
files as easy as typing "*.*"'. With CRC 
error checking, you can be sure data 
are sent and received without error. 
Make Your Own 
Communication Procedures. 
There are over 70 powerful script file 
functions to turn BitCom 3.0 into a 
flexible tool. For example, you can set 
up a script file to dial into Western 
Union's Easylink™, check your mail 
box, read your messages, print them 
and save them to a disk file. 

Other features are: 

• Supports speed up to 9600 baud. 

• Uses XON/XOFF flow control for 
talking to systems with different 

• Can be set up to work on COM1 to 

• Can re-assign or re-define any 
function keys. 

• Phone directory stores up to 32,767 
names and descriptions. 

• Sorts phone directory by name, ID 
or phone number. 

• Terminal emulation includes IBM 
3101, VT100, VT52. 

• Set your own screen color during 

• 132 column support with graphics 

" rd Only*69 00 

Not Copy Protected. 
Order Today. 

Call (408) 262-1054 


Bit Software, Inc. 

P.O. Box 360619 
Milpitas, CA 95035 

BitCom is a trademark of Bit Software. Inc. 
Easylink is j trademark of Western Union, 


PIE: A Prolog Knowledge 

by Simon Y. Blackwell 

While experimenting with modeling theories of knowledge via a computer, 
I found that no affordable expert system tools were flexible or powerful 
enough to meet my needs. Hence. I wrote PIE. a Prolog Inference Engine and 
TVuth Maintenance System, using ADA Prolog (the commercial version of PD 

Various versions of PIE have provided mechanisms for forward and backward 
chaining, consistency checking, and dependency-based truth maintenance. 
However, one of its most interesting features is an editor and compiler based 
on user-defined Prolog operators. Such an editor/compiler is outlined below. 

To implement the editor/compiler, you write Prolog rules in which the goals 
are the same as the syntax of a higher-level language developed to represent 
the knowledge. (The design of the higher-level language is left to the reader.) 
The antecedent conditions should be a series of Prolog predicates that assert 
Prolog clauses to the Prolog database. 

Suppose that only if is a logical connector in the higher-level language. Declare 
only if as an operator and define a rule as follows: 

Rule I 

Consequent only if Antecedent :- asserta(Consequent:-Antecedent). 

This rule will accept input from either the user or a stream opened using the 
Prolog predicate see(<file>). For example. 

boy(X) only if (male(X),human(X),young(X)). 

would result in 

boy(X) :- male(X),human(X),young(X). 

You can take this several steps further by declaring another operator, @, This 
will allow you to name rules and assign a certainty factor to them, as in 

Rule 2 

Rule @ Certainty @ Consequent only if Antecedents :- 
asserta(Consequent :- Antecedents,!, 

low_antecedent cert( Antecedents, L), 

Cons-cert is ((Certainty * L) / 100)) 

Note the Prolog rule that is asserted in Rule 2. A rule of such a form takes full 
advantage of the built-in Prolog inference engine. A programmer might be 
tempted to write rules or have the compiler write rules of the form of Rule 3. 

Rule 3 

fact(boy(X),Cert)):-fact(male(X) I Cert1)) I 
fact(young(X),Cert 3)), 

low_antecedent-cert([Cert1 ,Cert2,Cert3], L), 
Cert is ((< rule-certainty > * L) / 100). 

sions as well as simple evaluation. 

PD PROLOG supports 97 built-in 
predicates, all of which are described 
in Programming in Prolog or in the PD 
PROLOG documentation. Ramachan- 
dran Bharath provides exercises in the 
use of PD and ED PROLOG in Introduc- 

tion to Prolog (Tab Books. 1985). 

The accompanying text boxes by Li 
Su and Simon Y. Blackwell demon- 
strate the power of PD PROLOG to 
handle specific, physically constrained 
problems as well as knowledge rep- 
resentation in the abstract sense. 

164 B YTE • OCTOBER 1986 


Base Editor and Compiler 

Such rules are not efficient because they generate a large list to be searched, 
the list of all structures with the functor fact 

Rule 3 may also have to be resatisfied if the goal fact(boy(X),Cert)) appears 
in several rules. Note, however, that all goals in Rule 2 are asserted once satisfied. 
This prevents them from having to be satisfied multiple times. Asserting the 
satisfied goal to the top of the database stack is very important; otherwise subse- 
quent calls to the goal will reinvoke the rule, since the rule will be higher in 
the search stack. 

The assertion of rule(Name,Certainty,Consequent,Antecedents) in Rule 2 gives 
you the ability to retrieve, print out, reason about, or reference rules easily. The 
assertion of fact(Consequent,Cons-cert,Riile) allows you to track the certainty 
of and provide justification for the facts. 

I have left the definition of the predicate low antecedent cert to the reader. 

Given the Antecedents, the predicate should return the lowest certainty by retriev- 
ing their fact forms with attached certainties. 

Cons-cert is ((Certainty * L) / 100) multiplies the certainty in the rule by the 
lowest antecedent certainty to determine the certainty in the consequent. I've 
arbitrarily chosen a scale of 1 to 100 for this example. 

The efficiency of certainty propagation could be improved by tagging each 
fact directly, for example, boy(X.Certainty). Such an implementation removes 
the need to search for certainties after satisfying the antecedent goals. How- 
ever, this is at the expense of considerably complicating the editor/compiler. 

A final modification of the editor/compiler will allow a threshold certainty to 
be placed on the rule. If the certainty in the antecedent conditions is below 
a set limit, the goal will then fail. This is accomplished by 

Rule @ Certainty @ Threshold @ Consequent only if Antecedents :- 
assert(Consequent :- Antecedents,!, 

low antecedents cert( Antecedents, L), 

L < Threshold, 

Cons-cert is ((Certainty * L) / 100), 



This rule will accept input of the form 

rule-1 @ 100 @ 75 @ boy(X) only if (male(X),human(X),young(X)). 

As a result. boy(< something >) would never be asserted with less that 75 per- 
cent confidence. 

The same principles, with some embellishment, can be used to convert input 
like X is a boy into boy(X), create a frame-based inheritance system, or imple- 
ment dependency tracking and forward-chaining mechanisms. For example, for 
a general forward chainer, you would declare an operator implies, define your 
own assert predicate, and utilize rule facts like those asserted by the editor/ 
compiler outlined here. 

Simon Y. Blackwell [Inference Corp.. 2777 Summer St., Suite 402. Stamford. CT 06905) 
is a knowledge engineering consultant. 

Editor's note: PD PROLOG is available on 
disk, and on BIX. See the insert card after 
page 320 for details. Listings are also avail- 
able on BYTEnet. See page 4. You will need 
an IBM PC or compatible with 256K bytes 
of memory and MS-DOS 2.0. There are four 
compressed files: PDPROLOG.EQE. PRO 

CON F.EQE. as well as USQ.EXE, which 
you will need to decompress them. Simon 
Blackw ell's expert system shell. PIE. is also 
available. The files are KNOW.PQO. 
PIE.POT, and KOPS.QQQ. which must also 
be decompressed with USQ.EXE. ■ 

The ultimate time saving 
input device for IBM PC! 


60 Programmable 
Function Key 5 1 

Polytel'5 programmable multifunction 
Keypad, the KEYPORT 60, is your hey 
to one-finger pushbutton^ 




\nstea doT 

• Every hey fully programmable. 

• Label the hey5 so you never forget 
which hey doe5 what 

• Ideal for entering repetitive 
commands with a single touch. 

• Ho need to memorize hard-to- 
remember command sequences. 

• Includes ready-to-go template5 for 
D05, WordStar, Lotu5 1-2-5, and BA5IC. 

• Runs on IBM PC, X7; AT. and 

• Connects to game port— Ieave5 your 
other ports free. 

• Does not interfere with normal 
operation of regular keyboard. 

• 60-day money bach guarantee- 
no ri5h to you. 

• • • • Price— $139 • • • • 

(add $6 5hipping for each Keyport) 


Game port included! 
A $45 value! 

To order, call Polytel at 


In California, call 1-408-730-1347 

Or5end $145 check or money order to: 

Polytel Computer Products Corp. 

1250 Oakmead Parkway, 5uite 310 
Sunnyvale, California 94086 

In the (Jtt and Scandinavia, contact 

Electrone Ltd. 

Haywood house, high Street 

Pinner, Middlesex hA5 5QA 

Tel* 01-429-2433 

V/I5A, MasterCard & American Express 
cheerfully accepted! 



Microprocessor Development 
Dreams Come True! 

On-Line Help menus, 
Command Glossary, 
and Word List. 

Windows can be used 
to view source files, 
previous traces, 
and more. 

Symbol translation 
or source code 
line display. 

Screen displays scroll off 
into history buffer - 
can be viewed later. 

ADfi <word> ADR 
<word> TO <word> ADR 

Seta up the trigger specification for analyzer i 
-A15. { Sets trigger for AO to A19 if five digit 
a period. ) 


Deter mine 5 'which 16 bit addresses the 
„^~- -~ trigger on. Can also trigger on 20 bi 
With TO the trigger will occur on the 
froi edrl to adr2. 

3. LOG modes 


1 0000 31FE18 LD SP,T 

4 0003 DD213412 LD IX. 123 

8 0007 FD217856 LD IY,567 

C INITJPTO O00B 210019 LD 11.190' 

F 000E 3600 LD (HL).O 

11 1900 00 write 

-K-INCJffiH 00 10 34 INC (HL) 

13 1900 00 read 

14 1900 01 write 

15 0011 34 INC (HL) 

AF=808B (S2-a-pNC) BO0000 DE=0020 HL-1 

INCJIEH 0010 34 INC (HL) 

Pop-up Mode 
Selection panel 
called by soft key. 

Disassembly of code 
in memory can be 
^compared with trace in 
adjacent window. 

0007 FD217856 LD IY.5678 

000B 210019 LD HL.1900 S 

0O0E 3600 LD (HL),0/ 

0010 34 INC (H . 

0011 34 INC (HL) 

0012 14 INC D 

0013 14 INC D 

0014 210001 LD HL.100 

:1234 IY-5678 SP«18FE PC=0010" 

resume) [^JJJ (top) 

Symbolic debug 
register display. 

Context sensitive 
prompt line. 


Here are all the development 
tools you ever dreamed of integrated 
into one PC-controlled system: 

• An Advanced 48-Channel Bus 
State Analyzer 

• An 8/16-Bit Universal Emulator 

• A Built-in EPROM Programmer 

• An Input Stimulus Generator 

The synergy of these instru- 
ments that were designed together 
to work together saves you time and 
money. All UniLab II commands 
and menus are seamlessly integrated 
into a single, super-efficient working 


Send me info on UniLab II and 
your No-Risk 10-Day Evaluation! 


Address: _ 





UniLab II™ 

Universal Development Laboratory 

An Integrated Software 
Environment, too ! 

Imagine being able to split your 
screen and look at real-time program 
traces and the source code that pro- 
duced them at the same time! Then 
go to the On-Line Help or pop-up 
Mode Panels instantly. 

If you see something on a trace 
that doesn't look like last time, you 
can hold it in one window while 
you scroll back through your pre- 
vious displays. 

If you set a breakpoint and 
single-step you can then go back to 
using the analyzer without missing 
a beat. You can even execute a DOS 
batch file from UniLab to edit, as- 
semble, and link, then automatically 
load the new program and symbol 
table. UniLab uses the full power of 
the PC. 

Find bugs fast with 
Hardware -assisted 

The traditional way to look for 
bugs is to single-step through sus- 
pect parts of the code until you catch 
it in the act. This requires a lot of 
guessing and wasted time. 

With UniLab's built-in analyzer 
you eliminate the guesswork. Just de- 
scribe the bug symptom as a trigger, 
and let the UniLab hardware search 

for it as your program runs in real 
time. UniLab will show you a trace 
of the program steps leading up to 
the symptom, almost like magic. 

A friendly user interface 

UniLab lets you use commands 
or menus - or a mixture of both. An 
on-line manual, soft-key help screens, 
a glossary of commands and their 
parameters, with full-screen writeups 
are also at the ready. 

Reconfigure for any 8 or 
16-bit processor in seconds 

Thanks to our unique approach 
to emulation, changes between pro- 
cessor types require only cable and 
diskette changes. At last count, we 
specifically support over 120 micro- 

Bonus! The built-in EPROM 
Programmer and Stimulus Genera- 
tor are simply icing on the cake. 

Affordable capability 

How much does all this superior 
capability cost? A lot less than our 
less able competitors, and probably 
a lot less than you expect. Our pro- 
ducts are sold with a Money Back 
Guarantee, and our crack team of 
Applications Engineers is standing by 
if you need help. Get the full story 
on the amazing UniLab II and how it 
can liberate your development pro- 
jects, today. 

702 Marshall Street 
Redwood City, California 94063 

CALL TOLL FREE: 1-800-245-8500 

In California (415) 361-8883 

166 BYTE • OCTOBER 1986 

Inquiry 219 



by Ralph E. Griswold and Madge T. Griswold 

An expression can produce a sequence of results 
if it succeeds— or none at all if it fails 

ICON IS A high-level, general-purpose 
programming language that em- 
phasizes nonnumeric computation, 
that is, the processing of character 
strings and structures. It is written in 
C. Originally implemented under 
UNIX. Icon has been transported to 
other operating systems including 
DOS and VAX/VMS. It runs on ma- 
chines ranging from personal com- 
puters to mainframes. Its application 
areas include artificial intelligence, ex- 
pert systems, symbolic mathematics, 
text generation, editing, analysis, 
string processing, program genera- 
tion, cryptography, language transla- 
tion, molecular genetics, and others. 
[Editor's note: Versions for MS-DOS, U N IX, 
and VAX/VMS are available from the 
authors in executable and C source code: The 
MS-DOS executable code and some sample 
programs are available on BIX and BYTEnet 
under the following filenames: ICON- 
and TROUBLE.FRM. See page 4 and the 
insert card following page 320 for details. For 
the source code, write to the Icon Project. 

Department of Computer Science. The Univer- 
sity of Arizona. TUcson. AZ 8572 1.| 

The design of Icon stresses ease of 
programming, which permits short, 
concise programs. It has two major 
characteristics: expressions that can 
produce sequences of results and a 
goal-directed evaluation that automat- 
ically searches for solutions. In addi- 
tion to a large repertoire of simple 
string operations, Icon has a high-level 
string-scanning facility for pattern 

Its data structures include lists with 
stack and queue access, sets that can 
have members of any type, and tables 
with associative lookup. A data struc- 
ture can have values of various types. 
For example, a list can contain both 
integers and strings— and even lists. 
Icon also has automatic storage man- 
agement; it creates objects at run time 
instead of during compilation. And 
you don't need type declarations; 
Icon has run-time checking and auto- 
matic type conversion. 

General Aspects of Icon 

You may not notice anything unusual 
if you look at an Icon program. It 
looks a lot like a Pascal, C. or PL/I pro- 
gram. It is not distinctive in ap- 

pearance. Icon's distinctive aspects lie 
in its unusual expression-evaluation 
mechanism, its data structures, and its 
emphasis on high-level processing of 
character strings. 

An Icon program consists of a col- 
lection of procedure declarations 
within which are the expressions that 
carry out the program's various com- 
putations. The simple program 

procedure main( ) 

write ("welcome to outer space") 

does what you think it would— it 
writes out "welcome to outer space." 

Ralph E. Griswold. a professor of computer 
science at The U niversity of Arizona, was one 
of the originators of the Icon Programming 
language. He has a B.S. in physics and M.S. 
and Ph.D. degrees in electrical engineering, 
all from Stanford University. 

Madge T Griswold is a freelance writer and 
consultant on computing applications and 
computer-based publication techniques. She 
has a B.A. in history and journalism from 
Syracuse University and anM.A. in history 
from The University of Arizona. 

The Griswolds can be reached at the 
Department of Computer Science. The Univer- 
sity of Arizona. Tucson. AZ 85721. 

OCTOBER 1986 • BYTE 167 


The syntax of expressions in Icon is 
similar to that in most other program- 
ming languages. There are the usual 
operations, both unary (prefix) and 
binary (infix), function calls, reserved 
words for control structures and 
declaration components, and so on. 
This article does not contain details 
of the syntax, but the examples given 
provide the general idea. A precise 
description of Icon's syntax is found 
in reference I. 

To understand Icon, you need to 
have a general idea of the types of 
data it supports and the operations 
it performs on that data. In addition 
to integers and real (floating-point) 
numbers, Icon supports many less 
conventional data types, including 
strings (ordered sequences of charac- 
ters), "csets" (unordered sets of char- 
acters), lists (ordered sequences of 
values), sets (unordered sets of 
values), and tables (unordered sets of 
value pairs). Icon even considers pro- 
cedures to be data types. 

You can represent integers, real 
numbers, strings, and csets literally. 
The syntax is conventional; for exam- 

i := 20 
n := 3.14159 
greeting := "howdy" 
vowels := 'aeiou' 

Identifiers are sequences of letters, 
and the := operator indicates assign- 
ment. Strings and csets are enclosed 
in double and single quotes, respec- 
tively. Many operations compute 
values for the various data types. 

Since Icon has no type declarations, 
any variable can have any type of 
value at any time, depending on what 
happens during program execution. 
For example, you can write 

x := 1 

x :"= "hello" 

Icon takes care of type checking and 
conversion; you don't have to specify 
them when writing your program. You 
can even use types that are collec- 
tions of values. A list, for instance, 
may have values (elements) of dif- 
ferent types. An example is city : = 
[ , Tucson"500000,1986]. The square 
brackets enclose the three list values, 

one of which is a string while the 
other two are integers. This ability to 
have heterogeneous structures often 
allows programs to be written more 
concisely. The freedom from type 
declarations certainly makes it easier 
to write programs albeit at some ex- 
pense in efficiency and error check- 

Expression Evaluation 

One thing that distinguishes Icon from 
other programming languages is the 
method it uses to evaluate expres- 
sions. In most programming lan- 
guages, an expression always pro- 
duces a result— one result. It may be 
difficult to imagine how this could be 
otherwise. After all, computation 
means the production of a result. On 
the other hand, every programming 
language has conditional operations. 
An example is if i < j then write(i). 
Usually a conditional operation such 
as i < j produces a Boolean value, 
either true or false, depending on the 
specified relation. (Some languages 
use nonzero and zero integer values 
in place of Booleans but with the 
same meaning.) Control structures 
then test these values. 

Icon takes another view of this situa- 
tion: In Icon, if the relation does not 
hold (if i is not less than j, for exam- 
ple), the corresponding expression 
does not produce a result; it fails. 
However, if the relation does hold, the 
expression does produce a result- 
its right argument; it succeeds. Thus, i < 
j fails if i is not less than j and pro- 
duces no result; but it produces the 
value of j if the expression succeeds, 
that is, if i is less than j. Correspond- 
ingly, control structures in Icon are 
driven by the success or failure of 
their control expressions rather than 
by Boolean values. 

These conditional operations ap- 
pear exactly the same as they do in 
conventional languages, but Icon of- 
fers other possibilities. For instance, 
control expressions are no longer 
limited to those that produce Boolean 
values. In Icon, you can use any ex- 
pression as a control expression. It 
may produce a meaningful result, or 
it may fail. Since the result is not 
limited to being Boolean, you can use 
it in another computation. Consider, 

for example, while line := read() do 
write(line). The function read() pro- 
duces the next line if there is one, 
from standard input but fails at the 
end of the file. The value it produces 
is used in assignment, but the loop 
terminates at the end of the file. This 
has two important side effects. First, 
it eliminates any need for end-of-file 
testing; it follows automatically from 
the read function. Second, it is not an 
error for an expression to fail to pro- 
duce a result; it is a normal conse- 
quence of computation. 

In Icon, failure is "inherited," since, 
if an expression fails, there is nothing 
to operate on and no result can be 
produced. Thus, you can write this ex- 
ample more concisely if you omit the 
do clause and combine the read and 
write as in while write(read()). 

The distinction between success 
and failure in Icon's expression 
evaluation is only the beginning. Jn 
some situations, a computation may 
have more than one possible result. 
For example, the following function 
produces the position of one string 
that exists as a substring of another: 

s := "There are several errors" 

The string, or substring, "er" occurs at 
three different places in the string s. 
Most programming languages solve 
this ambiguity by picking one of the 
three results— usually the first one. Of 
the three positions— 3, 14, and 19— 
two would be discarded. If the dis- 
carded possibilities are needed, they 
must be obtained by using substrings 
or some similar mechanism. In Icon, 
however, an expression can generate 
a sequence of results if that is ap- 
propriate in context. There are two 
contexts in which this may be appro- 
priate: iteration and goal-directed 
evaluation. The control structure 
every expx\ do expxl performs iteration 
and causes expr\ to produce all its 
results in sequence. For every result 
expx\ produces, Icon evaluates expxl. 
For example, the function find can 
generate all positions, so that for the 
value of s given above, every i := find 
( n er",s) do write(i) writes 3, 14. and 19. 
Generation, like failure, is inherited; 
therefore, you can write this expres- 


168 B YTE • OCTOBER 1986 

Now available worldwide: 

Prospero's professional language compilers 
for PCs and STs 


FOR IBM PCs, XTs, ATs &. 


C is high on performance but low on 
safety, structure, portability and 
maintainability. Pascal is excellent for 
education and for long-term projects. 
Fortran gives you access to hundreds of 
existing programs - and uses established 
programming skills! 


Pro Pascal is validated to ISO 7185 / 
ANSI 770X3.97 Class A (no errors) on the 
Z80 processor under CP/M and the 8088 
processor under PC-DOS. This provides a 
guarantee that the compiler is complete 
and works perfectly. 


Pro Fortran-77 is a full implementation of 
ANSI Fortran-77 with no omissions and 
many useful extensions. Validation is 

Prospero Compilers Work! 

No known bugs when we ship - so you 
don't have to program around the holes! 

"Lazy I/O" for interactive use. 

Good Housekeeping 

All files closed on exit from procedure 

Hand-coded library 

Produces compact and efficient programs. 

Ideal for 

• software developers 

• universities and colleges 

• government and industry 

• students of computing 

• development of personal skills 

• solving technical problems 

• training institutions 

16 digit accuracy 

Single and double precision IEEE format 
arithmetic gives 7 or 16 digit precision. 

Inquiry 243 

50,000 Lines Big 

Compiles big programs >50,000 lines... 
>5,000 identifiers-Separate compilation 
to build libraries and massive program 


New Jumbo memory model with Pro 
Fortran-77 gives unrestricted access to all 
640K under MS-DOS. 

Compilers include 

• compiler 

• linker 

• run-time libraries 

• librarian 

• X-ref program 

• sample programs 

• 200+ page manual 


Full GEM AES and VDI bindings supplied 
with Atari products and (on request) with 
Pro Pascal for MS-DOS. 


Pro Pascal and Pro Fortran-66 are 
available for Z80 machines. 

Symbolic debugger 

16 bit versions include Probe - a superb 
symbolic debugger. You can view fully 
compiled code as source, backtrack, 
display and change variables using source 
names, check the calling stack, and break 
anywhere. Pro Fortran-77 version can 
also Debug and produce execution profiles. 

Pascal « — » Fortran 

Interlinkable code means you can use the 
best of both languages. Ask for details. 

We Specialize 

At Prospero we specialize in writing 
language compilers. We produce the best 
possible compilers, conforming to the 
appropriate standard, and giving program- 
mers a secure base on which to build. 

Cross Compilers & Specials 

We can provide cross compilers in Pascal 
and Fortran within the 68000 - 8086 - 
Z80 triangle. We'll also develop special 
compilers to customer specifications. 

Quote: "Pro Pascal is not only ISO- 
validated, it is also a superb-quality and 
very full software development tool." 
Personal Computer World Nov 1985 

Prospero compilers are used at more than 
6000 sites around the world. 

It's easy to order! 

Credit card holders phone Sue Thomas on 
703-354-0866. Mastercard, Visa, Diners & 
Amex accepted. 

Free Reviews & Info 

Call this number also for a free info pack 
with datasheets and magazine reviews. 

Prospero's compilers are also available 
from good software dealers and distributors 

Software distributors 

Contact us for our Worldwide Distribution 
Guide, or see us in the Hilton at Comdex 
Fall, Las Vegas. 

US Distributors: 


PC Brand 212-410-4001 

Software Consulting 



Apex Resources 617-232- 


Oreman Sales 504-468-2001 


A+ Computer Resources 


Quantum 201-328-8846 

Call for worldwide distributor list 

Pro spero Software 

190 CASTELNAU. LONDON SW 13 9DH, ENGLAND TEL 01-741 H531 TELEX 8814396 

I 1 

Mail order service 

Send this coupon with check to Prospero 

Software Ltd, 190 Castelnau, London SW13 

9DH, England. Add $7 shipping and allow 28 

days for delivery. 

Please supply (enter number required): 
__ Pro Fortran-77 for Atari ST at SI 49 
_ Pro Pascal for Atari ST at $ 149 

Pro Fortran-77 for Sinclair QL at $129 

Pro Pascal for Sinclair QL at $129 

__ Pro Fortran-77 for MS-DOS at $495 
_ Pro Pascal for MS-DOS at $390 
_ Pro Pascal for CP/M-86 at $390 

I enclose payment of $ 



State/ Zip 

Telephone No 

In case of query call 011-441-741 8531 or telex 
8814396. Tick product name if you just require 
information! Byte 10/86 




sion more compactly as every write 

While iteration forces an expression 
to generate all its results, there are 
many situations in which you need 
only one result. Therefore, i := find 
("er",s) assigns the value 3 to i. This 
method generates no more results 
since they are not needed. Thus, con- 
ventional expression evaluation oc- 
curs automatically if you don't use a 
context that generates more than one 

Another possibility: There are often 
several possible solutions to a prob- 
lem, but they don't all satisfy a larger 
goal. A simple example would be 
determining whether "er" occurs in 
both s1 and s2. It may occur in several 
positions in both, but locating a com- 
mon position is laborious in most pro- 
gramming languages. Icon automati- 
cally forces expressions to produce 
results if they are needed to satisfy a 
condition in an enclosing expression. 
An example: find("er",s1) = find 
("er",s2) succeeds if and only if "er" 
occurs at the same position in s1 and 
s2 (the operator = compares for 
numerical equality). 

The mechanism is simple and auto- 
matic. If the left and right expressions 
produce results, but they are not 
equal, Icon generates the next result 
from the right expression. This pro- 
cess continues until either the com- 
parison succeeds or the right expres- 
sion has no more results. If the right 
expression has no more results, Icon 
generates the next result of the left 
expression, and each of the results for 
the right expression is generated 
again. It is simple and natural and 
straightforward. Much of the concise- 
ness of Icon programs comes from 
the use of this facility— and it is com- 
pletely general; it applies to all ex- 
pressions and to all types of results 
in all contexts. 

Given the idea of expressions that 
can produce sequences of results, 
there are all kinds of possibilities. For 
example, i to j is an expression that 
generates the integers from i to j. 
Thus, you can write a for-style control 
structure using every. . .do, as in 
every i := 1 to 10 do f(i). The rigid for- 
mat of the for-style control structure 
in conventional languages is not 

Listing I: An Icon procedure to 
produce the larger of two numbers. 

procedure max( i , j ) 

if i > j then return i 

else return j 

Listing 2: An example of how a 
procedure can fail. 

procedure greater (i,j) 
if i > j then return i 
e Ise f ai I 


Listing 3: A procedure to generate 
the successive powers of a number i. 

procedure powers(i) 
j := 
repeat \ 

suspend i " j 
j + :- 1 


needed. You can write this expression 
more concisely as every f(1 to 10). 

Another control structure that 
follows naturally from having se- 
quences of results is alternation: exprl 
| exprl produces the results for exprl 
followed by the results for exprl. In 
conditional contexts, this amounts to 
logical disjunction. For example, if find 
("er",s) = (4 | 14) then write(s) writes 
the value of s if it contains "er" at posi- 
tion 4 or 14. In iterative contexts, alter- 
nation has the effect of "exprl then 
exprl." For example, every 
write(find("er"s1 | s2)) writes all the 
positions of "er" in s1 followed by all 
the positions of "er" in s2. 


Procedures provide a way of extend- 
ing Icon's built-in repertoire of 
operators and functions. For example, 
Icon has no function for producing 
the larger of two numbers. The pro- 
cedure in listing I does this. You call 
such a procedure exactly the same 
way you call a function: write(max(ij)). 

It can also fail the same way a func- 
tion can fail (see listing 2). In this case, 
if i is not greater than j, the procedure 

An Icon procedure can also be a 
generator, by using suspend instead 
of return to produce a result. When 
a procedure suspends, its environ- 
ment is left intact and you can resume 
executing the procedure to produce 
another result. For example, the pro- 
cedure in listing 3 generates the suc- 
cessive powers of a number. The ex- 
pression i~j produces K The pro- 
cedure suspends for the first time 
when i is raised to the zeroth power 
(i.e., is equal to I). If the procedure 
resumes to obtain another result, j is 
incremented ( j +:= 1 is an abbrevia- 
tion for j := j + 1). The repeat con- 
trol structure is a loop that never ter- 
minates. Thus, the procedure powers 
next suspends when j is raised to the 
first power, then when it is squared, 
cubed, and so on. For example, 
powers(2) generates 1, 2, 4, 8, 16, and 
so on. Note that this generator pro- 
duces an infinite sequence (or could, 
except for arithmetic overflow). An in- 
finite generator presents no problem 
unless you use it in an iterative con- 
text. There is also a control structure 
exprl \ exprl that limits the number 
of exprl results to at most the value 
of exprl. Thus, every write(powers(2)) 
\ 5 writes 1, 1. 4, 8, 16. 

String Processing 

After considering the possibilities of 
Icon expression evaluation, character 
string processing may seem mun- 
dane. Nonetheless, much computing 
involves string processing, and con- 
ventional programming languages 
have limited facilities for such com- 
putations. Icon has two levels of string 
processing: analyzing and synthesiz- 
ing strings based on character posi- 
tion, and pattern matching, which lets 
you scan strings without worrying 
about the details. 

First, while strings are sequences of 
characters, Icon has no character data 
type. Strings can be arbitrarily long, 
limited only by available memory 
space. The underlying character set of 
Icon is ASCII-based. Any 8-bit ASCII 
character (including the null character) 


170 B YTE • OCTOBER 1986 

\?#!j .. ■■ 

The computer below 
gives you $6000 performance. 

The computer above 
gives you a $2995 price. 


No matter how you look at it 
nowyou can have all the power 
and speed of the IBM AT- for the 
price of a comparably-equipped 
IBM XT. With the newTeleCAT- 
286, from TeleVideo. 

It starts you off with every- 
thing you need. Including IBM 
AT compatibility. 5 12K RAM. 
A 20MB hard disk. A 1.2MB 
floppy. Plus an Intel 80286 CPU 

that runs at either 6 or 8MHz 
clock speed. All standard. 

But we didn't just stop at 
performance. We've also designed 
a complete set of ergonomic 
features into theTeleCAT-286. 
Like a high resolution 640 x 400 
monitor. Sculptured keycaps 
on a high quality keyboard. Even 
LEDs right on top of the three 
critical locking keys, where they 
won't get covered up by overlays. 
Best of all, you get all this in a 

size 2 8% smaller than the IBM AT. 

Want to learn more about it? Call 
usatl-800-TELECAXDept. 115, 
and we'll tell you the nearest 
place you can find one. 

Then check out the computer 
with performance above your ex- 
pectations-at a price below them. 


Settle for more. 

TeleVideo Systems, Inc. 1170 Morse Avenue; Surinyvale?CA 94088-3568 (408) 745-7760 

IBM is a registered trademark of International Business Machines, Inc. 

Inquiry 300 

© 1986 TeleVideo Systems, Inc. 


can occur in an Icon string. Thus, Icon 
can process binary data as if it were 
string data. Icon strings are not arrays 
of characters. You cannot change a 
character within a string, although 
there are many ways to create new 
strings from old ones. This property 
lets you think of strings as atomic ob- 
jects that cannot be corrupted. 

Since a string is a sequence of char- 
acters, concatenating two strings to 
form a longer one is a natural opera- 
tion. In Icon, concatenation has the 
form s1 || s2. For example, the 

s1 := "welcome aboard" 

s2 := "mate" 

s3 := s1 || ". " || s2 

produces the value "welcome aboard, 
mate" in s3. Since Icon handles 
storage management automatically, 
you don't need to know— or worry 
about— how long a string is. (The oper- 
ator *s produces the length of s in 
characters if you need it.) 

Icon has a number of other opera- 
tions for constructing strings. For ex- 
ample, repl(s.i) produces i number of 
concatenations of s; and left(s.i) con- 
structs a string of length i with s posi- 
tioned to the left and padded with 
blanks to the right if needed. 

Much string processing involves 
analysis— locating the positions of 
substrings— or extracting specified 



12 3 4 5 6 

Figure 1: A string's character location 
numbers start to the left of the first 



-5 -4 -3 -2 -1 

Figure 2: String positions can also start 
from the right and decrease in number. 
However, character referencing still begins 
from the left. 

positions from a string. A string's 
character locations are specified by 
positions that are between the charac- 
ters, starting at I (which is prior to the 
first character, as in figure 1). A sub- 
string within another string is 
specified by its bounding positions. 
For example, if the value of pet is 
"Rowdy", then pet[1:4] specifies the 
substring "Row". If you need only a 
single character, you can omit the sec- 
ond position, so that pet[1] specifies 
"R". You may assign this substring to 

another string, as in nickname : = 
pet[1 ,4]. This expression assigns a new 
string "Row" to nickname; it does not 
change the value of pet. 

Since Icon cannot change the char- 
acters in a string, it has a convenient 
abbreviation that appears to do this. 
If you assign a substring of a variable, 
Icon constructs a new string to replace 
the value of the subscripted variable. 
For instance. pet[1] := "D" appears to 
change the value of pet to "Dowdy". 
Icon really performs a concatenation: 
pet := "D" || pet[2:6]. Consequently, 
the first character of pet has not really 
been modified; pet has been assigned 
an entirely new string. A moot point, 
perhaps, but a different approach 

If you don't know how long a string 
will be when you write a program, you 
can specify string positions in a de- 
creasing fashion starting from the 
right as illustrated in figure 2. Thus, 
pet[-1] is "y." Note that although 
the numbering starts from the right, 
the position number for a particular 
letter still commences from the 

While strings are useful for repre- 
senting all kinds of textual material, 
there are situations in which the order 
of characters is not important but the 
properties of the character set are. 
Csets provide this facility and can be 



^"\/"\ Watt. The original micro- 
UPS that brought 
/ standby AC power to 
Apple users in 1980. Still the 
POWER SOLUTION for serious 
applications of the MAC, small 
micros, and portables. 
Model 9012060 $350. FCC(15A&B). 

for full-size micros. Filters 
electrical noise/spikes and 
provides up to 10 minutes of AC 
power for the AT and supermicros 
Model 40012060 $695. UL-E101268. 

j~\ n /~v Watt. This DataSaver 
J I )( I standby UPS offers 
&L\J\J compact, cool and 
quiet line conditioning and backup 
power to PC, XT, and COMPAQ 
markets. Data and hardware are 
Model 20012060 $495.CSA-LR51253. 

Cuesta Systems Corporation 

3440 Roberto Court 

San Luis Obispo, California 93401 

| 1986. Made with pride in th 

805/541-4160 TLX:4949381 CUESTA 
Dealer, VAR, & OEM inquiries invited. 

172 BYTE • OCTOBER 1986 

Inquiry 83 

Aztec C ... The Best C 

Frees the genius itf you 

You've got a great idea . . . 

. . . you're ready to write your programs. 

You don't want to be sidetracked by all the paper- 
work. With Manx Aztec C and the ingenious make 
function, your creative processes won't get bogged 
down in program administration and housekeeping. 
Manx Aztec C has the most sophisticated, hardwork- 
ing program administrator available to you. Once 
you've described your project, adding new features or 
enhancements is simple. You never have to concern 
yourself with the repetitive, tedious task of rebuild- 
ing your systems. 

The development process moves quickly. Com- 
piles, assemblies, link edits ... all finish in record 

Manx Aztec C is the fastest, most efficient C de- 
velopment system in the industry. Benchmarks show 
it . . . reviews commend it . . . users praise it. 

You're ready to test the program. You're ahead of 
schedule. The Manx Aztec C Source Level Debugger 
shows you the exact C language statement giving you 
a problem. You fix the problem quickly . . . you're 
still ahead of schedule. 

You've got some time for fine tuning. 
The Manx Aztec C Profiler examines 
your program, tells you where the slow 
spots are and validates your test pro- 
cedure. A few changes and it's exactly 
what you wanted. 

You've made it! 

Aztec C is available for MS-DOS/PC 
DOS. Call for details on Macintosh, 
Amiga, Apple II, CP/M-80, 
CP/M-86, TRS-80, ROM and others. 

To order, or, for information 

Call Today 


In NJ or outside the USA call 

30-day satisfaction guarantee. Special Discounts 
are available to professors, students, independent 
developers, and on a "trade-in" basis. Site licenses. 

" . . . a superb linker, a profiler, an assembler, 
and a set of development utilities are only the be- 
ginning of this package . . . performed admirably 
on the benchmarks, with short compile times and 
the best link times in this review . . . includes the 
most professional make utility . . . documentation 
is clear and complete. There is no doubt that this 
is a valuable and powerful programming en- 
vironment/' Computer Languages Feb. '86 

" . . . execution times are very good, close to the 
best on most tests ..." PC Tech Journal Jan. '86 

" Easily one of the fastest compilers overall . . . 
library provides a lot of flexibility . . . generates 
small .EXE files." Dr. Dobbs Journal Aug. '85 

CTrime (Compiler, Assembler, Linker) $ 99. 

Aztec C 86-d Developer's System $299. 

Aztec C 86-c Commercial System $499. 

PC ROM (8086, 68000, 8080, or 6502) $750. 

Third Party Software for Aztec C: HALO,PHACT, C-tree, 
PRE-C. Windows for C, PC-lint, PANEL, Greenleaf, db Vista, 
C-terp, Plink-86, FirsTime, C Util Lib, 
and others. 

Manx Software Systems 
One Industrial Way 
Eatontown, NJ 07724 

MS is a registered TM of Microsoft. Inc.. CP/M TM DRI. HALOTM Media Cybernetics, PANEL TM 
Roundhill Computer Systems, Ltd.. PHACT TM PHACT Assoc. PRE-C, Plmk-86 TM Phoenix, db 
Vista TM Raima Corp., C-terp, PC-lint. TM Gimpel Software, C-tree TM Faircom. Inc., Windows for 
C TM Creative Solutions. Apple II, Macintosh TM Apple. Inc., TRS-80 TM Radio Shack, Amiga TM 
Commodore Int'l. 

Inquiry 182 


specified literally- 
Built-in csets are keyword values 
(values of special importance to Icon). 
A keyword name begins with an 
ampersand; for example, some cset- 
valued keywords are &lcase, &ucase, 
and &cset. The first two have cset 
values consisting of the lowercase and 
uppercase letters, respectively The 
last, &cset is the set of all 2 56 ASCII 
characters. You can perform set oper- 
ations on csets. For example, the cset 
union &lcase + + &ucase consists of 

all the lowercase and uppercase let- 
ters in the alphabet. Similarly, the cset 
difference &cset -- &lcase, consists 
of all ASCII characters except the 
lowercase letters. 

Both strings and csets are used for 
analyzing textual material. The func- 
tion find(s1,s2) is an example. A 
similar function, upto(c,s), generates 
the positions of the characters in the 
cset c that occur in s. For example, the 
code in listing 4 writes 3, 5, 7, 9, 12, 
14, 16, 19, and 22. Both find and up- 

Listing 4: The \con code to generate the positions of the various vowels in s. 

s := "There are several errors" 
every wr i te(upto( ' aeiou ' ,s)) 

Listing 5 : The Icon code to break a text file into its individual words and write 
them out one at a time and one to a line. 

procedure main() 

letter := &lcase ++ &ucase 
while line := read() do \ 
i := 1 

while j := upto( letter , I ine, i ) do \ 
i := many( I etter , I ine, j) 
wr i te( I ine[ j : i ]) 



6: A rewrite 

of the code in listing 5 

using string scanning. 

procedure main() 

letter := &lcase ++ &ucase 
while line := read() do 

line ? while tab(upto( I etter )) 
wr ite( tab (many ( I etter))) 


T^ble I: The input file used for the 
examples in this article. 

It was the best of times, 
it was the worst of times, 
it was the age of wisdom, 
it was the age of foolishness, 

liable 2: 

The output from the code in 

listing 5 when table 1 is 

its input. 









to have an optional third argument 
that tells Icon where to begin. If you 
don't specify that argument, Icon 
assumes it is position 1, the beginning 
of the string being examined. How- 
ever, you can specify any other value. 
For example, every write(upto 
('aeiou' ,s,10)) writes 12, 14, 16, 19, and 
2 2, the vowel positions beyond the 
tenth position, for the same s. An- 
other function that uses csets is many. 
For example, many(c,s) will skip as 
many characters as it finds at the be- 
ginning of s and produce the position 
in s following those characters. 

You can use the functions upto and 
many, which produce positions, in 
combination with subscripting opera- 
tions. For example, if you define a 
word to be a sequence of uppercase 
and lowercase letters, the program in 
listing 5 will break a text file into in- 
dividual words and write them out in- 
dividually. For each line, i starts at I. 
The position of the first letter is 
assigned to j; then i is set to the posi- 
tion of the last letter starting from that 
point. The value of line[j:i] is the word 
itself. The process continues until 
there are no more letters starting at 
i. Then another line is read and pro- 
cessed, and so on. For example, if the 
input file consists of the data in table 
I, the output of the program will ap- 
pear as in table 2. 

This typifies low-level string analysis: 
It computes positions, determines 
substrings by position, and so on. 
String scanning handles much of this 
detail automatically. In a string- 
scanning expression, which has the 
form exprl ? exprl, the string value of 
exprl provides the subject for 
analysis— corresponding to line in the 
example— and exprl contains match- 
ing functions that operate on this sub- 
ject, automatically changing position 
as they find specified substrings. The 
position starts at I. One matching 
function, tab(i), sets the position to i 
and returns the substring located be- 
tween the old and the new positions. 
Since i is a position, it can be provided 
by a function like upto, which assumes 
it is examining the current subject if 
you omit its second argument. Using 
string scanning, you can rewrite listing 
5 as listing 6, and you don't need to 


174 BYTE • OCTOBER 1986 


32-bit VME price/performance 

Motorolas MC68020 VME computer board meets system integration 
needs for less than $1500* in OEM quantities of 100 or more. 

■4 MVME131 
• MVME135 

•* M VME 130 

0. ■ 


4 MVME121 


• M VME 133 

1 •« M VME117 



• MVME110 

* MVME10S/&T7 
• • MVME101 I30 'B63 

66000 68010 68020 


This highly-integrated computer 
board features the 32-bit performance 
of our proven 12.5 MHz MC68020 
MPU and our MC68881 Floating-Point 
Coprocessor — at OEM volume pricing 
of less than $1500? It's the 
smart answer for small 
single CPU systems and 
embedded controller 
applications in robotics, 
industrial automation, 
image processing and 
many others. 

Advanced features of 
the MVME133 include 
1 Mbyte of shared local 
DRAM accessible from the VMEbus; 
on-board MC68881 floating-point math 
coprocessor; serial debug and multi- 
protocol serial ports; three 8-bit timers; 
real-time clock; four 28-pin JEDEC 
sockets for ROM/PROM/EPROM/ 
EEPROM; A24/D32 VMEbus 1 master 
interface; and built-in system controller 
which can provide all the required func- 
tions for many applications. 

You can also expand the board 's 
capabilities with one or more VMEbus- 
compatible modules from Motorola and 
over 200 other worldwide vendors of 
VME products. 

'Pricing in U.S. dollars for U.S. delivery only, and is subject to change 
without notice. 

VRTX is a registered trademark of Hunter & Ready. 

PDOS is a trademark of Eyring Research. 

pSOS is a trademark of Software Components Group. 

MTOS is a trademark of Industrial Programming, Inc. 

VMEmodule, VMEl33bug, and VERSAdos are trademarks of Motorola, Inc. 

The software's also in place. 

To speed development of your 
application, we back up the M VME133 
Monoboard Microcomputer module 
with our full-featured VERSAdos™ real- 
time operating system. And for 
initial system checkout, you can 
select Motorolas optional 
VME133bug™ firmware package 
with a full range of onboard 
diagnostics and debug utilities. 

Want to use your favorite real- 
time software package on the 
MVME133 board? Porting of 

pSOS, ,M pdos™ rtux; m 

MTOS,™ and VRTX® software 
packages is under way at their respective 
vendors, with availability planned for the 
Fall of '86. 

One-on-one design-in help. 
Get an engineer-to-engineer update. 

From anywhere in the U.S. or Canada, 
call toll-free any weekday, 8:00 a.m. to 
4:30 p.m. MST. 


If the phone call itself can't answer your 
needs, we'll have our local applications 
engineer contact you face-to-face. With 
answers. And get you to market faster. 

For a data sheet on our new MVME133 
computer board. . .or any of our other VME 
modules, write 
to Motorola 
Products, Inc., 
P.O. Box 20912, 
Phoenix, Arizona 
85036. Or use the 
coupon below. 



To: Motorola Semiconductor Products, Inc. 

P.O. Box 20912, Phoenix, AZ 85036 

Please send me more information on the MVME133 Microcomputer board. 


Company _ 

. State . 


Call me (_ 


specify the subject of analysis within 
the scanning expression. 


Different values often have a common 
property or are considered part of an 
aggregate of values. Conventional 
programming languages provide ar- 
rays or vectors for grouping values 
that occur in sequence and are re- 
ferred to by position. Icon provides 
such a facility in its list data type. It 
also has sets, which are unordered 
collections of values, and tables, in 
which pairs of values can be as- 
sociated. All of these aggregates are 
themselves data values and are con- 
structed during program execution. 
Therefore, you can compute their 
sizes as you need them rather than 
having to specify them when you 
write the program. 

Lists. A list is a sequence of values. 
You can construct a list by specifying 
its elements explicitly or by specify- 
ing its size and the initial values of all 
its elements. For example, tabulation 
:= list(1 000,0) assigns a list of 1000 
zero values to tabulation. You can 
reference list elements by position by 
using their subscripts, and you can 
change them by assignment, as in 
tabulation[30] := 10, which changes 
the 30th element of the list to the 
value 10. 

A list element is a variable and, like 
other variables in Icon, can have any 
type of value, for example, tabula- 
tion[1] := "first place". Since a list is a 
sequence of values, it is natural to 
have a generator (!a) produce this se- 
quence. For example, every write(la) 
writes out all the values in a. Since a 
list points to the aggregate of its 
elements (the address where the ele- 
ments are kept), a list element may 
also be a list. For example, 

nodel := ["a",0] 
node2 := ["b r, ,0] 
nodel [2] := node2 
node2[2] := nodel 

The zero values are place holders that 
are then replaced by list values. Figure 
3 depicts graphically the resulting 
structure. Therefore, you can use lists 
in Icon to represent graphs and other 
structures that have connections be- 
tween various objects. Note that these 

Figure 3: A graphic representation of 
the structure of an Icon list. 

Listing 7: The \con code to read 
in all the lines in a file and write 
them out again in reverse order, last 
line first. 

procedure main() 
I ines := [1 

while push( I ines, read()) 
while wr i te(pop( I i nes)) 


lists are heterogeneous, consisting in 
this case of a string value and a list 

Arrays in most languages are fixed 
in size and can be referenced only by 
position. Icon supports stack and 
queue access to its lists to allow them 
to grow and shrink. The function 
push(a.x) pushes the value x onto the 
beginning (left end) of the list a, in- 
creasing its size by one. The function 
put(a,x) puts the value of x onto the 
right end of a, also increasing its size 
by one. Correspondingly, pop(a) 
removes the leftmost value from a, 
whatever it may be, and fails if a is 
empty. The rightmost value is similarly 
removed by pull(a). 

You can use push and pop in com- 
bination to make a list look like a 
stack— a last-in, first-out data structure 
where you add and remove values at 
the same end. The function get is 
synonymous with pop; therefore, you 
can use put and get to make a list look 
like a queue— a data structure where 
you add values to one end and 
remove them from the other. 

Often a program reads data from an 
input file and puts it into a list for pro- 
cessing, yet you don't know the 
number of input lines you will have 
when you write the program. You can 
handle this by starting with an empty 

list (indicated by [ ]) and pushing or 
putting input lines into it. For exam- 
ple, the program in listing 7 reads in 
all the lines of a file and writes them 
out in reverse order, last line first. This 
kind of program is practical only if the 
file is small and can be stored in a list 
in memory at one time. 

Sets. Sometimes a collection of 
values has no particular order. In- 
stead, the values have some common 
property such as being words from an 
input file. Icon provides sets for such 
purposes and supports the usual set 
operations: membership testing, in- 
sertion and deletion of values, and the 
union, intersection, and difference of 
two sets. 

The function set(a) creates a set 
from list a. For example, articles : = 
set(["the","a"]) creates a set with two 
members. You can insert, or add, a 
member to a set, as in insert(ar- 
ticles,:"an"); adding a member more 
than once has no effect. The number 
of members in a set is limited only by 
the amount of memory available. Sets 
also share several other character- 
istics with lists: The operator !s gen- 
erates all the members of set s; a set 
value is a pointer to one of that set's 
members; and sets can have mem- 
bers of different types. A set can even 
point to itself as a member! For ex- 

s := set(a) 

There is no paradox here since a set 
value is just a pointer; the challenge 
is to find a constructive use for this 

The program in listing 8 illustrates 
one use of sets; it writes a list of all 
the different words that occur in the 
input file. The function sort produces 
a sorted list, so that the words are 
written in alphabetical order (see 
table 3). Each word appears only once 
regardless of the number of times it 
appears in the input file. Note that "It" 
appears before words beginning with 
lowercase letters because uppercase 
letters precede lowercase ones in the 
ASCII collating sequence. 

Tables. While lists deal with se- 
quences of values and sets handle un- 
ordered collections of values, Icon 
uses tables containing value pairs to 

176 BYTE • OCTOBER 1986 


Listing 8: An illustration of one use of \con 
list of all the different words that occur in an 

sets. This 
input file. 



a sorted 

procedure main() 

letter := &lcase ++ &ucase 

words := set([]) 

while line := read() do 

line ? while tab(upto( 1 etter )) 
i nsert (words, tab (many ( 1 etter 


every wr i te( !sort (words)) 


Ikble 3: The output from the 
program in listing 8 when table 1 
its input. 












associate two values— for example, 
the number of times a word occurs in 
a file. One value, such as a word, is 
used as a key to index the table; the 
other value, such as the number of 
times the word occurs in the file, is 
associated with the key. Keys are 
unique in any table; only one value 

can be associated with a given key. 
To create a table, you use table(x), 
where x is the default initial value 
automatically associated with new 
keys, l&bles are initially empty. To add 
pairs to a table, you subscript the 
table with a key and assign a corre- 
sponding value. Thus, if t is a table, 

t["the"] := 1 assigns the value 1 to the 
key 'the" in t. Tables grow automati- 
cally as you assign values to new keys; 
the size of a table is limited only by 
the amount of memory available. 

Since you can compute keys, you 
may need to find out what keys are 


State of the Smart. 

SmarTEAM 2400 

• 0-300, 1200, 2400 bps. Bell 103, 212A. 
CCITT V22, V22 bis. Full duplx duplex 

• Auto dial (pulse or tone), auto answer 
automatically switches between tone and pulse 

• Hayes 2400 commands compatible 

• 6 self test modes 

• Call progress detection (ringing, dial tone, busy) 

SmarTEAM 2400B 

• Internal slot modem for IBM PC. 
XT, AT and compatible computers 

• 7.5 inches length with the same great 
features of SmarTEAM 2400 

• MITE + software optional 

1200 BH 

Quality Communication 



SmarTEAM 1200 BH 

• 5 1 /4' length with the same great 
features of SmarTEAM 1200 AT 

• Internal slot modem for IBM 
PC, XT, AT and compatible 

SmarTEAM 1200 AT 

• Bell 103, 212A standard 

• Fully Hayes compatible. 

Auto dial (pulse or tone), auto answer 

• 2 self test modes (analog loop back and 
remote digital loop back test) 

• Call progress detection (dial tone, busy) 

SmarTEAM 1200 CT 

• Compatible with CCITT V.21 and V.22 
Alternate B 1200bps asynchronous 

• 0-300, 1200 bps full duplex 

• Compatible with Hayes commands 
Auto dial (pulse or tone), auto answer 



2F,No.4, Szu Wei Land 

Chung Cheng Rd.,Hsin-Tien City 

Taipei, Taiwan, R.O.C. 


FAX, {02)7251830 

TEL: (02)918-9249 

Inquiry 296 

U.S Soles Rep. 

19205 PARTHENIA St. Ste. J 
Northridge, CA 91324 
TEL:(81 8)886-9726 

13441 Pumice St. 
Norwolk, CA 90650 


TEL:(41 6)673-7800 

PET Computers 





Hayes is a registered trademark of Hayes Microcomputer Products. Inc. 

IBM PC. XT. AT are registered trademarks of International Business Machines Corp. 

MITE is a registered trademark of MYCROFT LABS INC. 


Listing 9: An illustration of one use of Icon tables. This program lists 

alphabetically all the words in the input file with a count of how many 


each one occurs. 

procedure main() 

letter := &lcase ++ &ucase 

wordcount := tablefQ) 
while line := read() do 

line ? while tabf uptofl etter ) ) do 
wordcount[tab(many( letter))] +:= 1 

wordlist := sort (wordcount ,3) 

while wr i te(get(wordl ist ), " : " , get (wordl ist)) 


Tkble 4: The output from the 
program in listing 9 when table 1 is 
its input. 

It: 1 
age : 2 
best : 1 
foolishness : 1 
it : 3 
of : 4 
the : 4 
times : 2 
was : 4 
wisdom : 1 
worst : 1 

in the table: To do this, you can pro- 
duce a corresponding list in which 
keys and their values alternate with 
a := sort(t,3). where sort (with a sec- 
ond argument of 3) produces a list 
sorted on the keys. (Other second 
arguments for sort will produce dif- 
ferent kinds of sorting for tables.) 

The program in listing 9 illustrates 
the use of tables; it lists all the words 
occurring in the input file with a count 
of how many times each one occurs. 
The output is shown in table 4. Note 
that the initial value for a new key is 
0. The final line of the program uses 
get(a) to extract alternate keys and 
their values. The function write may 
have several arguments; if it does, 
they are automatically concatenated 
on the output line. 

Other Features. Icon also has a 
number of other features worth 
noting (see reference I for a complete 

• Icon has an extensive repertoire of 
functions and operations for perform- 
ing numerical computation, string 
analysis and synthesis, and list pro- 

• You can call Icon procedures recur- 
sively allowing you to handle recur- 
sively defined structures, like trees, in 
a natural way. Generators also can be 

• You can declare records whose 
elements are referenced by names. 
This lets you extend Icon's repertoire 
of built-in data types. 

• You can contain expressions in co- 
expressions, so that generators can pro- 

duce their results as needed through- 
out a program. 


Icon includes a translator, a linker, and 
a run-time system. The translator con- 
verts an Icon source program to an in- 
termediate form that consists of in- 
structions for a "virtual" machine. This 
virtual machine can be thought of as 
an Icon machine, although it is imple- 
mented in software, not hardware. (A 
description of the implementation ap- 
pears in reference 2.) The linker com- 
bines virtual machine code from sep- 
arately translated modules and pro- 
duces a binary output, much like an 
assembler produces executable 
binary code from assembly language 

When an Icon program executes, 
the binary code is read into memory 
and interpreted. Using an interpreter 
rather than executing compiled 
machine code provides portability 
and flexibility. In addition, the inter- 
preter is only slightly slower than the 
compiler that was originally used. 
Compilation does not provide a big 
performance improvement because 
many Icon operations are executed in 
compiled run-time subroutines. This 
is true regardless of whether the 
source program is compiled into ex- 
ecutable machine code or translated 
into a machine-independent form for 

In Conclusion 

Icon is a multifaceted, multifunctional 
character-string processing language 

available in the public domain. Its 
method of evaluating expressions- 
producing a result (or sequence of 
results) if the expression succeeds, 
and no result if it fails— distinguishes 
it from other high-level programming 
languages. Since Icon is written in C, 
it runs on a wide range of computers 
with little or no modification; you do, 
however, need a production-quality C 
compiler and library to compile it 
from source code. If you don't have 
a C compiler, executable binary files 
for DOS 2.0 or higher are also avail- 


Icon is a result of ongoing research in program- 
ming languages supported by the National Science 
Foundation and The University of Arizona. 


1. Griswold. Ralph E., and Madge T. 
Griswold, The Icon Programming \nnguage, 
Englewood Cliffs, NJ: Prentice-Hall, 1983. 

2. Griswold, Ralph E.. and Madge T. 
Griswold, The Implementation of the Icon Pro- 
gramming language, Princeton, NJ: Princeton 
University Press, lb appear. 


Fonorow, Owen R.. "From SNOBOL4's Founder 
Comes Icon," Computer language, vol. 3, no. 
7 (July 1986), pages 73-84. 

Fonorow, Owen R., "Users Press Icon Into 
Commercial Service." Computeworld, vol. 
XIX, no. 46 (November 18, 1985), pages 

Griswold, Ralph E., and Madge T. Griswold, 
"High-Level String Processing Lan- 
guages: COMIT. SNOBOL4, and Icon," 
Abacus, vol. 3, no. 4 (Summer 1986), 
pages 32-34. ■ 

178 B YTE • OCTOBER 1986 


• 8 Or 4.77 MHz 

• Up to 1 Meg Memory 

• 2 Serial Ports 

• 1 Parallel Port 

• On Board Disk 

• On-Board C/ock/ 

ET-286 p/t/s 

• 10/6 & 12.5MHz 

• Up to 4 Meg Memory 

• 3 Serial Ports 

• 2 Parallel Ports 

• 8 Expansion Slots 

• 5 MHz DMA 

• On-Board Clock/ 

•Optional 10 MHz Co- 

• ACS MS-DOS 3.2 

• GW Basic 3.2 

A HERITAGE OF EXCELLENCE In any marketplace one product stands out as the 
pinnacle of performance and value. In the PC/XT marketplace, that product is the 
ACS-1000: 4.77 or 8 MHz operation, 1 Megabyte memory, built in communications, 
built in floppy disk controllers, even a SASI interface — all packaged on a single board 
and priced competitively with the merely compatible. 

Building on the heritage of the ACS-1000, the ET-286 plus brings the same stan- 
dards of excellence to the AT marketplace. 

Push Back 
The Envelope: 


& 12.5 MHz 

AT Compatibility 

IBM obviously positioned 
the AT as the hub of the 
microcomputer network. 
ACS hasincluded what IBM 
left out. 

SPEED The ET-286 nearly 
doubles the clock speed of 
the AT at 10 MHz and we are 
already 12.5 MHz capable. 
With access to 4 Megabytes 
of on-board memory via a 
5MHz DMA bus, the ET-286 
bypasses additional wait 
states required to maintain 
compatibility with expansion 
bus memory. With memory 
intensive network software 
like Unix and Xenix, this 
becomes critical. Naturally, 
the ET-286 toggles from Hy- 
perSpeed at 10MHzto 100% 
6MHz compatibility for those 
applications that demand it. 


ET-286 plus is designed with 
communications in mind. 
There are three on-board 
serial ports that are configu- 
rable as either RS-422 or 
RS-232 depending on your 
application. 2 parallel ports 
further extend your commu- 
nications ability. And there 
are still 8 expansion slots for 
additional I/O. 


Part of the success of the 
ACS-1000 and our other 
products is the availability of 
our people. We provide the 
support that OEM's need in 
order to win major contracts 
— engineering support, 
competitive pricing, even 
specialized packaging. Ser- 
vice is the key issue in the 
information marketplace and 
we provide the kind of ser- 
vice and reliability that you 
can only find in an American 
made product. 

ACS MS-DOS 3.2 We want 
to help you compete. That's 
why we have licensed 
MS-DOS 3.2 and GW Basic 
3.2 and made them available 
in OEM packages at OEM 

Even with all thpcc * — 
for un 
inforrrB q ^> 

9 3 

Inquiry 4 

IBM, UNIX and XENIX are trademarks of IBM. AT&T and Microsoft respectively. 


The Imag Enhancer PC add-on board brings 
plotter-like output to dot matrix printers. 


Sales ] 

Your old printer should look so good. 

Introducing the ImagEnhancer™ PC add- 
on board. It enables ordinary monochrome 
or color dot matrix printers to produce high- 
quality, plotter-like graphics. 


The ImagEnhancer is the perfect way to 
get presentation -quality graphs, charts and 
artwork from your old dot matrix printer. 
What's more, it comes with a built-in 
512K memory. So while your printer is 
printing one job, you can use your PC for 
another. Which will improve your productivity 

And of course, the ImagEnhancer works 
with the same computer products most 
everyone works with. 

IBM* PCs, XTs, ATs or 100% compatibles 

with graphics 
Alps, Epson" 
or Epson- 
monochrome or 
color dot matrix 
printers. And 
Houston Instrument (DM/PL) plotter- 
compatible software, including Lotus'* 1-2-3* 
Symphony,* PFS*: Graph and Framework™ 
among others. 


At $595f the ImagEnhancer costs a 
fraction of what you'd pay for a new plotter. 
It's simple to install, too. And backed by a 
one-year warranty. 

The ImagEnhancer is a product of Alps 
rica, a U.S. subsidiary of Alps Electric 
i. of Japan, an International Fortune 



500 company. Other Alps America products 
include a full line of high-quality printers. 

For more information, print samples, or 
the name of the dealer /distributor nearest 
you, write to Alps America, 3553 North 
First Street, San Jose, CA 95134. Or call 
(800) 828-ALPS. In California, (800) 257-7872. 
In Canada, (800)858-2577. 

Better yet, send in this coupon along 
with your payment. And teach your old dot 
matrix some new tricks. 

Inquiry 15 for End-Users. Inquiry 16 for DEALERS ONLY 

idemark of Alps Electric Co., Ltd. Other computer or software names are trademarks and/or tradenames of their respective manufacturers. ©1986 Alps America. 





recast — Off ice /Government 


1986 1987 1988 1989 1990 

evenues Source: Future Computing 

This image was printed with an ordinary color dot matrix printer and the Imag Enhancer PC add-on board. With a monochrome printer, you get the same high resolution in black and white. 



Address: _ 


. Zip:_ 


. ImagEnhancer(s) at $595 each? 

*Add $10.00 shipping and handling for each. California residents add 7% sales tax. 
Offer available in U.S.A. only. 

Method of payment (circle one): 

Check Money Order MASTERCARD VISA 

Card number: . 

Exp. date: 


Mail to: Alps America 
3553 North First Street 
San Jose, CA 95134 
In California, (800) 257-7872 





I i n ) ■ 

BM's Personal Computer is the standard of the industry, 
but a Thomson monitor gives your IBM's great body a 
beautiful face. A Thomson monitor atop your IBM simply 
outperforms the IBM Col or Display. 
Here's proof: 


Dot pitch (in mm J 


Switch for green/amber text 

All major controls up front 


List Price 


90 days 


Superior resolution 
Less eyestrain 
Improved legibility 
Greater convenience 
Greater confidence 
A bargain 

Who is Thomson? Thomson is a six billion dollar 
multinational company. Unlike our competition, we 
design and build our own monitors with stringent quality 
control. We offer monochrome or color monitors from 
TV- grade to high resolution. 

Call 1-800-325-0464. In 
California call 1-213-568-1002 
(Monday-Friday 9a.m. to 
5p.m. PST) for your local 
Thomson dealer, and start 
looking at a beautiful face. 



© 1986 Thomson Consumer Products Corporation 5731 W. Slauson Avenue, Suite 111, Culver City, CA 90230 

Thomson is a trademark of Thomson S.A, IBM is a registered trademark of Intel national Business Machines Corp. IBM model number 5153. list prices in effect on Feburary 18. J9i 

182 BYTE • OCTOBER 1986 

Inquiry 301 for End-Users. Inquiry 302 for DEALERS ONLY. 



by Anthony Zackin 

Create a user-friendly interface 
for DOS with this ANSI.SYS replacement 

ONE OF THE most important func- 
tions of an operating system is to pro- 
vide centralized support for I/O 
devices. When doing an input or out- 
put operation via the operating sys- 
tem, a program normally needs only 
to identify the device— the operating 
system then handles the details. For 
example, writing to the console and 
writing to a printer are similar and 
may, in fact, be performed by the 
same high-level language program 
statement, but from the operating sys- 
tem's point of view they are quite dif- 
ferent. Consequently to handle the 
differences between computer I/O 
devices the operating system must 
provide a set of routines called device 
drivers, usually one per device type, 
that handle the peculiarities of each 
device. These drivers are resident ex- 
tensions of the operating system, 
which can call them as needed. 

Versions 2.0 and later of MS-DOS 
and PC-DOS allow user-defined 
device drivers. You can define drivers 
to support new devices or replace 
existing DOS device drivers. An addi- 
tional device driver for the console, 
which includes the keyboard and the 
display, comes in the DOS distribution 
package. This driver, ANSI.SYS, sup- 

ports a subset of the American Na- 
tional Standards Institute cursor con- 
trol sequences for terminal control. 
You can use these sequences, for ex- 
ample, to clear the screen, position 
the cursor, set display attributes such 
as foreground and background colors, 
and reassign the meaning of the key- 
board keys. 

Replacing ANSI.SYS 

I've written a complete replacement 
of the ANSI.SYS driver that provides 
the same functions and supports 
many more. I've also developed a utili- 
ty to make programming the driver a 
simple matter. My driver, the En- 
hanced Console Driver (ECD), has a 
2000-byte key definition buffer, which 
is almost seven times larger than that 
of ANSI.SYS. | Editor's note: The ECD and 
associated files (CON DRV 4 3. SYS. CUEXT. 
are available on disk and on BIX. See the 
insert card following page 320. Listings are 
also available on BYTEnet. See page 4. You 
will need an IBM PC or compatible with 
DOS 2.0 or later] 
The ECD also provides for a more 

friendly user interface to the operat- 
ing system. It does this by adding an 
on-screen clock with alarm, a Caps 
Lock, Num Lock, and Print Screen in- 
dicator, and the ability to define text 
windows, which may be displayed by 
either an application program or the 
operating system PROMPT command. 

You control these functions in a 
manner similar to controlling 
ANSI.SYS— via special control se- 
quences that start with an Escape 
character (ASCII value 27) followed by 
a left bracket (|, ASCII value 91). How- 
ever, valid control sequences are 
never shown directly on the display 
device. The ECD examines all DOS 
output to the screen, looking for this 
sequence. If a control sequence is 
found, the ECD examines the remain- 
ing characters for a valid command 
and executes that command; other- 
wise, the output is displayed normal- 
ly on the console. 

Because device drivers become 


Anthony Zackin, an assistant vice president 
with Citibank N.A. (399 Park Ave., New 
York, NY 10043), has an M.S. in computer 
science from Rutgers and more than 1 2 years 
of professional programming experience with 
IBM mainframes and assorted micros. 

OCTOBER 1986 • BYTE 183 


resident extensions of DOS, you can 
issue commands to the ECD at any 
time. The only caveat is that you must 
execute the commands via the oper- 
ating system so that the console 
driver recognizes them. Thus, you 
may execute the ECD commands in 
any program that updates the display 
through a DOS function call (interrupt 
21H). Since there are many programs 
that avoid DOS for performance 
reasons, the ECD has the additional 
capability to support programs that 
do their console output via the system 
BIOS. However, programs that write 
directly to the display adapter are not 
supported by the ECD. 


Probably the most useful feature of 
the ECD is its ability to define win- 
dows in memory and then display 
them instantly on the console. One 
80-column by 2 5-line text screen 
(4000 bytes, including 1 attribute byte 
per character) is available as a private 

screen buffer for storing windows. The 
ECD can also take advantage of the 
extra memory on the IBM Color 
Graphics Adapter (CGA). The CGA 
contains 16K bytes of memory of 
which only 4K are needed in the 
80-column text mode. You may use 
the remaining 12K as three additional 
buffers to store more windows; unlike 
the ECD's private buffer, however, this 
12K-byte area cannot be guaranteed 
across all program calls. 

A window is nothing more than a 
set of four coordinates defining the 
upper left and lower right window 
corners relative to the display buffer. 
Each set of window coordinates in a 
buffer has a number, which you 
assign, and each buffer can hold up 
to eight windows. You place window 
text in a buffer by passing to the ECD 
a color attribute, a row and column 
coordinate, and a string of text. To dis- 
play a window, you select the appro- 
priate buffer and pass the window 
number to the ECD. The ECD instant- 

ly displays the window during the ver- 
tical retrace interval. 

Other Display Options 

You don't have to use the windows, 
however, to take advantage of the 
ECD's other features. The ECD can 
also display the current time any- 
where on the screen and, if you have 
a color display, in any color. In a 
similar manner the ECD can display 
the seven-character (including spaces) 
string " C N P " to indicate the toggle 
settings for Caps Lock, Num Lock, and 
Print Screen— where the individual let- 
ters are displayed only when the cor- 
responding setting is on. 

The time display is a familiar hours- 
and-minutes format that you can easi- 
ly move or switch on or off. For ex- 
ample, Lotus 1-2-3 version I A does 
not display the current time, but with 
the ECD you could place the time dis- 
play in, say, line 2 5 using the same 
colors as the other 1-2-3 status items. 




Eco-C88 is a full C compiler for MSDOS machines. Everything you need is included 
in the low price of $59.95, including a full-screen editor. Here's what some 
reviewers are saying about the Eco-C88 C Compiler; 

"Eco-C performed well on all the benchmarks, generating code that 
was quite comparable to that of compilers 10 times as costly." 
Christopher Skelly. Computer language, Feb., 1986 

"This compiler does handle syntax errors much better than average 
- no avalanche of spurious messages here." 
William Hunt, PC Tech Journal, Jan., 1986 

"Eco-C88 is a high-quality package . . . convenient to use ..." 
Dr. David Clark, Byte, Jan., 1986 

"Eco-C is definitely a bargain ... it includes both the compiler and an 
excellent Turbo-style editor. . . a useful compiler for advanced applications, 
and will serve farbeyond the beginning phase." 
Gary Entsminger. Micro Cornucopia. April-May, 1986 

The compiler comes with a standard library of over 200 functions, cc 
and "mini-make" utilities, ANSI language enhancements (e.g., 
prototyping), expanded user's manual, plus much more, all for the low 
price of only $59.95. Also ask about our support products! 

If ordered with the compiler, the C library source code (excluding transcen- 
dental) is $10.00 and the ISAM file handler (as published in the C 
Programmer's Library, Que Corp) in OBJ format is an additional $15.00. Please 
add $4.00 for shipping and handling. To order, call or write: 

Ecosoft Inc. 

6413 N. College Avenue 
Indianapolis, IN 46220 
(317)255-6476 • 8:30-4:30 


We've continually improved Microstat since it was introduced in 1978, and 
the latest release includes many new features you've wanted. 

Interactive and Batch Processing 

Expanded Data Management 
Subsystem with New Data 

Reading data files created by other 
programs (e.g., Lotus) 

3 types of Analysis of Variance 

Time Series 

Crosstabs and Chi-Square 

Factorials, Permutations, and 

Hypothesis Tests 

Data sets that can exceed memory 

Multiple Regression (including 

Scatterplots (including best fit 

Correlation Analysis 

12 Nonparametric tests 

8 Probability Distributions 

Descriptive Statistics 

Easy Installation 

Microstat's algorithms have been designed to prevent numeric overflow errors 
and yield unsurpassed accuracy. Microstat's price is $375.00 including the 
user's manual and is available for the Z80, 8086, 8088 CPU's and CP/M80, 
CP/M86, MS-DOS, and PC-DOS. To order, call or write. 

(orders only) 


Trademarks: Eco-C88. Microstat (Ecosoft), CP/M (Digital Research), MSDOS (Microsoft), PC-DOS (IBM), Z80 (Zilog), 8086, 8087, 8088 (Intel) 





184 BYTE • OCTOBER 1986 

Inquiry 342 

Inquiry 185 


TkE CU Command Syntax 

The following is a list of the commands supported by the Console Utility. 
Variables that you supply are indicated with variable words written in lower- 
case. Items in square brackets refer to optional fields; items separated by a ver- 
tical bar (|) indicate alternatives, one of which should be used. Bracketed fields 
followed by an ellipsis mean that zero or more occurrences of that field are 
acceptable; for example, [ [attr] string ] . . . means that any number of occur- 
rences of a character string or a string preceded by an attribute or any com- 
bination thereof is valid. 

An attribute represents the color or brightness of a character displayed on 
the console. It consists of two letters, one for the background color and one 
for the foreground color. A capital letter usually sets a blinking field for the back- 
ground color and high intensity for a foreground color. Valid color values are 
w|W = white, b|B = black. u|U = blue, r|R = red, g|G = green, y = brown 
(Y = yellow), c|C = cyan, and ra|M = magenta. 


@ row [,] col [attr] string [ [attr] string ] . . . 


@ NEXTROW | NR [,] col [attr] string [ [attr] string ]. . . 

locates text in the current buffer. If multiple attributes and strings are specified, 
they will be placed in the next buffer position following the preceding specified 
string. The row value should be between 1 and 25 inclusive, the column value 
(col) between 1 and either 40 or 80 inclusive depending on the current screen 
mode. If NEXTROW or NR is used instead of a row number, the number used 
will be equal to the row value of the previous @ command -t- 1. 

ALARM [ [AT | @] hh[:mm][xx] [ [DISPLAY] [WINDOW] number ] 


ALARM [ [AT | @] hh[:mm][xx] [ [DISPLAY] [attr] string [ [attr] string ] . . . ] 

hh:mmxx represents the ASCII value of the time on a 12- or 24-hour clock; if 
the former, xx should beam or pm; if omitted, hours between 8 and 1 1 inclusive 
will be assumed am, all others pm. The window number should be a value be- 
tween and 7 inclusive. If a window number is specified, then every time the 
alarm sounds, that window in buffer ZERO is displayed. If a string is specified, 
then up to 80 characters of text will be placed in row 25 of screen buffer ZERO 
and assigned to window 7; this is equivalent to issuing the three commands 
ALARM hh;mmxx 7; DEFINE WIND 7 AS 25,1 THRU 25,80 AT 24,1; @25,1 attr 
"This is the message text." Note that the message is placed in line 25 of the 
buffer but is displayed in line 24 because the latter is less likely to contain system 
status information. The alarm will sound approximately every 30 seconds until 
explicitly reset; this may be done by typing CU ALARM RESET or more simply 
bv pressing both the left and right Shift keys simultaneously (this will also reset 
a pending alarm). If no arguments are specified, the alarm will be sounded once. 


turns off a currently ringing or pending alarm. 


OUTPUT means that output operations to the console via the BIOS will be 
trapped; that is, programs that bypass DOS calls using direct BIOS calls instead 
may issue console driver commands via their escape sequences. NONE means 
that BIOS call trapping will be turned off if set. 


Math CAD 

The Engineer's Scratch Pad 

N := 40 j := ,.N ... 40 points 

S. := i - 2 5(j 

function, using 
first two terns 
of Fourier series 


i := 1,3 ,.3 



/' "-' \ 


4 v-^i 
R := - > - sin 
j IT ^ — ' i 

1.5 CZ 

R ,S 
j J 


A powerful computation and 
documentation tool for your 

With MathCAD you simply and inter- 
actively create, edit and display for- 
mulas on the screen the way you are 
used to writing them. Equations are 
instantly computed and the results dis- 
played on the screen as a single num- 
ber or a plot. Text may be added to the 
screen and everything may be printed 
out as an integrated document. 
MathCAD has built-in hyperbolic and 
circular functions, performs all calcu- 
lations with real and complex num- 
bers, performs iterative calculations, 
handles all units, performs error 
checking and dimensional analysis 
and much more . . . 

The price of MathCAD-$189. 

In Massachusetts add 5% sales tax. 

To order send check, p.o., call us 
with your MasterCard number or 
call us for the nearest dealer. 

1.800.MathCAD or 617.577.1017 

Math Soft 

+ V 

x / -S- 8 

One Kendall Square 
Cambridge, Massachusetts 02139 

OCTOBER 1986 • BYTE 185 

Inquiry 2 30 


Keeps on growing* ♦♦ 

New disks recently added to our library 

of user-supported and public domain 

software for the PC: 

□ #471 Present V5.1 Make your own slide shows 
for business or home using your color monitor. 

□ #477 Name Gram/Break Down/Fone Word 

Do anagrams, find what words your phone number 

□ #480 PC-Outline Outline and organize 
information, much likeThinktank. 

Q #481 Still River Shell Makes DOS easy to use. 

□ #483 Mall Master Keeps track of multiple lists, 
sorts and prints by city, state, zip and name. 

□ #485 Icon Maker and FX-Matrlx Makes 
graphics characters like the MAC for your screen 
and you can paint them on your EPSON printer. 

□ #487 Reflex Point An action game modeled after 
the ROBOTECH cartoon series. 

□ #492 Nutrient Tracks your diet and its calorie/ 
nutrient value. 

□ #494,495,496 The World Digitized Find over 
100,000 different locations in the world and display 
them on screen. 

□ #498 DOS-a-Matlc Load different programs and 
manipulate them with single keystrokes. 

□ #499 PROCOMM Communications with 
XMODEM, KERMIi; ASCII protocols, supports IBM- 
3101, DECVT52/1000, ADM-3 and ANSI. 

□ #501 & 502 Saleseye Tracks prospects, leads 
and memos and prints letters with that information. 

□ #503 Reliance Mailing List Keeps track of 
multiple lists, sorts and prints by specific group- 
good for custom mailing. 

□ #506 Bibliography off Business Ethics and 
Moral Values The regularly updated master 
bibliography for those doing papers and research 
involving business ethics. 

□ #507 PC-Sprint Software and instruction on how 
' to cheaply speed up your system 2-3 times. 

□ #508&509 Statistics Tools Factorexperiments, 
"FORGET-IT" plots, simultaneous confidence 
intervals, randomization tests, expected mean 

G #510 Visible PASCAL Compiler Learn to 

program PASCAL and watch the internal functions 

of PASCAL as it runs. 
G #511 Turbo Sprites and Animation Create, 

maintain and animate your own images in TURBO 



G # 5 PC-HieVer.4 

G # 78 PC-Write Ver. 2.6/1 

G #124 Extended Batch Ver. 2.04a 

G #199 PC-CalcVer.3 

G #212,334 RBBS-PC (2 disks)Ver. 3.7 

G #388 100 Letters Ver. 1.1 

G #393 Checkbook Ver 2 

G #395 Home Inventory Ver. 2 

G #397 Checkbook Program Ver 3 31 

G #402 IBM 370 Cross Assembler Ver 11 

G #403 Computer Tutor Ver. 4.2 

G #417 ADA Prolog Ver. 1.90 

G #449 Gags Vers. 1.06 

G #468 CPA Ledger Ver. 1.1 

G 350-page directory (disks 1-300) $8.95 

G Printed Supplement(disks 301-454) $3.95 

G 1 yr PC-SIG Membership ($35 foreign) $20 

Includes printed directory, supplement, bimonthly 



Any 5 Disks plus 1 -Year Membership $39 

Disks are $6 each. Add $4 postage and handling ($10 
foreign)- CA residents add state sales tax. 

Total Enclosed $ by Q Check DVISA □ MC 

Card No. 

Exp. date Phone 


Address _. - 





To order, call: 800-245-6717 
In CA: 800-222-2996 
For technical questions or 
local orders: (408) 730-9291 

1030-D East Duane Avenue 
Sunnyvale, C A 94086 213 


BUFFER number 

sets the current buffer: number should be a value between and 3 inclusive; 
default - 0. All subsequent commands affecting a buffer, namely @, CLEAR, 
DEFINE, and DISPLAY, will use this buffer until it is explicitly reset. 

CLEAR [attr] row [,] col [THRU | THROUGH] row [,] col 

clears a portion of the current buffer and resets its attribute bytes. 


"clears" from the current position to the end of that line by filling it with blanks 
using the last specified attribute. (The current position is the location in the buffer 
immediately following the last character written by the @ command.) 

CLOCK [attr] [BLINK] [SUPPRESS number] [ [AT | @] row [J col ] 
displays the time as hh:mmxx (xx=am/pm) at the specified location. The row 
value should be between I and 25 inclusive, the column value (col) between 

1 and either 40 or 80 inclusive depending on the current screen mode. BLINK 
determines whether the colon will blink. SUPPRESS will suppress the next number 
clock calls so that this call may be effective even though a subsequent call to 
display the clock is made via the system PROMPT string; a value of 255 will 
keep the clock off until a subsequent CLOCK SUPPRESS call with a value < 

2 55 (e.g., 0). If the [AT row.col] specification is omitted, the time will not be dis- 
played until the next CLOCK command with an AT row.col parameter. If the 
CLOCK is not set by the PROMPT string, then typing CLOCK alone turns off 
the display; if the CLOCK is set by the PROMPT use CLOCK SUPP 255 to 
temporarily turn off the display 


releases all control of the system clock and is useful to enable other programs 
to get control of the clock interrupt; the next CLOCK call without the DISABLE 
option will reenable control of the system clock. CLOCK DISABLE can be used 
to temporarily give up control of the system clock to allow a timer-sensitive ap- 
plication to get precedence. Control of the system clock is initially disabled. 

DEFINE [WINDOW number] [AS] row [,] col | [THRU | THROUGH] row [,] col 
[AT | @] row [,] col 

defines a window (default is 0) in the current buffer for a subsequent display 
The row values should be between l and 25 inclusive, the column values (col) 
between l and either 40 or 80 inclusive depending on the current screen mode. 
The AT parameters refer to the location on the screen where the window will 
be placed. 


immediately displays the specified window (0 if omitted) of the current buffer. 

This command may also be used as the redefinition value of a key 


takes you out of the CU program (needed only in the interactive mode). 

HELP [PRINT] [string] 

HELP string displays a summary of all commands whose names start with the 
specified string; commands include @. ALARM, BIOSTRAR BUFFER, CLEAR, 
tion information. If HELP ALL or HELP PRINT ALL is specified, the full docu- 
ment is listed or printed. If PRINT is specified, the output will be directed to 
the printer. 


KEYDEF SUPPRESS n will set the DOS keyboard redefinition suppress count: 
= interpret redefinitions, 1-254 = suppression count. Keyboard redefinition 
should be suppressed prior to running programs that use DOS I/O and need 
to read the keys you have redefined for DOS. KEYDEF SUPPRESS 255 will 



Introducing the new power in AT-class personal business computers. The NEC Advanced Personal Computer IV. 

You're the kind of person who's very serious about personal computers. The kind of person who will never settle 
for just a powerful machine. Or just a compatible machine. Because you want them both. You're a Power User. 

And the NEC APC IV™ is the one machine that strikes a perfect balance between compatibility and power. 

Because the APC IV offers both 6 MHz and 8MHz processing speeds. 
So you can run all the industry standard software. Like Lotus 1-2-3.™ dBase 
III.™ Multiplan.™ Windows.™ You name it. 

Plus the APC IV has the power of NEC behind it. The $ 10 billion leader 
in computers and communications. So you never have to worry about 
support. The new NEC APC IV. Because sooner or later, you're going to have 
to take it to the limit. For more information, call NEC at 1-800-343-44 19 (in 
MA 617-264-8635). NEC Information Systems, Inc., Dept. 1610, 1414 
Massachusetts Avenue, Boxborough, M A 1 7 1 9 . 


NEC Information Systems, Inc. 

■ ^ B, fZ Computers and Communications 

Inquiry 213 

OCTOBER 1986 -BYTE 187 

Inquiry 142 


& power 

supplies for 










8 inch 
5 inch 
3 inch 


Call or write 
for free 

assistance. ! 1 



I Hill f I 

f [111! I I 


8620 Roosevelt Ave. • Visalia.CA 93291 


TELEX 5106012830 (INTEGRAND UD) 
EZLINK 62926572 

We accept BankAmericard/VISA 
and MasterCard 


decrement the keyboard redefinition suppress count if it is nonzero (i.e., key- 
board redefinition has been suppressed); KEYDEF SUPPRESS -1 may be 
specified instead for clarity. This corresponds to Esc[136;255:, which normally 
should be part of the system prompt as $e[136;255: to explicitly decrement 
any nonzero redefinition suppress count. Note that this suppression count should 
be 1 greater than the count used in the other commands (e.g., CLOCK), since 
the count will be decremented explicitly by the system prompt prior to the use 
of any redefined key. 

LOCKS [attr] [SUPPRESS number] [ [AT | @] row [,] col ] 
displays the current toggle status for Caps Lock, Num Lock, and Print Screen 
(set/reset via Ctrl-PrtSc or Ctrl-P). SUPPRESS will suppress the next number lock 
display calls so that this call may be effective even though a subsequent call 
is made via a user-defined PROMPT string; a value of 2 55 will keep the locks 
off until a subsequent LOCKS SUPPRESS call with a value < 2 5 5 (e.g., 0). The 
row value should be between 1 and 25 inclusive, the column value (col) between 
1 and either 40 or 80 inclusive depending on the current screen mode. If the 
AT row.col specification is omitted, the lock display will not be displayed until 
the next LOCKS command with an AT row.col parameter. If the LOCKS are not 
set by the PROMPT string, typing LOCKS alone turns off the display; if the 
LOCKS are set by the PROMPT use LOCKS SUPP 255 to temporarily turn off 
the display. 


releases all control of the keyboard and is useful to enable other programs to 
get control of the keyboard interrupt; the next LOCKS call without the DISABLE 
option will reenable control of the keyboard. LOCKS DISABLE can be used 
to temporarily give up control of the keyboard to allow a keyboard-sensitive 
application to get precedence. Control of the keyboard is initially disabled. 

MODE screen-size-number [SUPPRESS number] 

screen-size-number should be 2 5 or 43. MODE 43 sets the number of screen 
lines to 43 for use with the Enhanced Graphics Adapter or equivalent. MODE 
25 resets the number of lines per screen to the standard value. SUPPRESS will 
suppress the next number mode calls so that this call may be effective even though . 
a subsequent call is made via a user-defined PROMPT string; a value of 2 55 
will disable subsequent MODE calls until one with a SUPPRESS value < 2 55 
(e.g., 0) is issued. (The console driver window buffers are still limited to 2 5 lines 
even in 43-line mode.) 

READ [device:][path]filename [ ,[device:][path]filename ]. . . 
accepts CU input from the specified file or files. This command can be specified 
only from the parameter string or the keyboard; that is. a READ file cannot con- 
tain another READ command. 


STACK string 

puts the specified string at the end of the DOS keyboard input buffer. This com- 
mand is useful for providing a predefined response for applications that use 
DOS commands to read keyboard input. READ should be either the only com- 
mand or the last command in a file processed by CU READ since it causes 
CU to terminate. 

The ECD clock also includes an 
audible alarm. The alarm has a dis- 
tinctive sound, which you can use in 
lieu of the standard bell, for example, 
to signal the end of a batch file. Or, 
of course, you can set the alarm for 
a specific time. You can even have a 
text window display a message on the 
console when the alarm goes off. (If 
the alarm goes off when the display 

is in graphics mode, the text window 
will not be legible.) Once activated, 
the alarm will continue ringing until 
you turn it off by issuing a command 
sequence to the ECD or by pressing 
both Shift keys at once. In the latter 
case the ECD sounds two beeps to in- 
dicate the alarm has been reset. 
For systems with an IBM Enhanced 


188 BYTE • OCTOBER 1986 


SoMerent But Cost 
AboutThe Same? 

This is Toshiba 24 pin letter quality. 

T h i s i s 9 pin p r i n t e r q u a 1 i t y , 

When we developed the P321 and P341 
3-In-0ne™ dot matrix printers, we had just two 
goals in mind. 

Superb 24-pin letter-quality reproduc- 
tion. And a price that's as close as possible to 
standard 9-pin models. 

One look at the print sample shows you 
we succeeded. So will one look at the price. 

In fact, we were so successful, we gave 
these 24-pin printers with the 9-pin price a 
special name: The Affordable Class. 

And we included features— starting 
with type font cartridge capability— that put 
them in a class by themselves. 

BoththeToshiba P321 and P341 printers 
produce letter-quality documents at 72 CPS, 
drafts at 216 CPS and high-resolution graphics 
at 180x360 dpi. 

Each printer has our industry-standard 
P351 command set for more sophisticated 
word processing and high-resolution graphics. 

And each printer has standard applica- 
tion compatibility with the entire IBM-PC 1 , 
line of products. 

Options include downloadable 
disk capability and type font car- 
tridges for an unlimited range of type 
styles, a one- or two-bin sheet feeder 


as well as continuous forms tractor feeder. 

The affordable and compact P321: If 
your budget is less than compatible with your 
business and correspondence needs, you need 
our popular P321. 

%u get letter-quality reproduction in a 
printer that looks great on the bottom line. 

The affordable extended-carriage P341: 
If you need to do full-size spreadsheets, you 
need our wide-carriage P341. 

Like the P321, the P341 uses our 24-pin 
printhead that lasts up to four times longer 
than other printheads, and has made us the 
number one seller in the business. 

So buy a Toshiba Affordable Class P321 
or P341 printer today. You'll get letters that look 
perfect every time. 

And a type font cartridge free* 

For the name and location of the 
Toshiba printer and computer dealer nearest you, 
call 1-800-457-7777. 

1. IBM-PC is a registered trademark of International Business Machines Corporation. 
"Offer expires 2/15/87. See your Toshiba dealer for details. Or call 1-800-457-7777. 


Inquiry 310 

In Touch with Tomorrow 


Toshiba America, Inc , n ormation Syst ms Division 

OCTOBER 1986 • BYTE 189 


Programming the 

In addition to the standard, typewriter-like keys on the keyboard, you can also 
redefine any of the special keys listed below. All names preceded by an 
A, C, or S refer to the concurrent typing of the Alt, Ctrl, or Shift keys respectively— 
except for names beginning with CU which refers to the arrow (cursor) keys on 
the numeric keypad. For example, CULE is the cursor left (arrow) key; CCULE 
is that key plus the Ctrl key; Al is the 1 key plus the Alt key; SF1 is the Shift 
key plus the Fl key, etc. Some of the keys can be specified in more than one 
way, for example. CCULE or CCURSORLEFT. These special key names may also 
be used in the redefinition string to reset a special key to its original value. You 
should not use quotation mark delimiters when entering these key names. 

A-, AO. Al, A2, A3, A4, A5. A6, A7, A8, A9, A=, AA, AB, AC, AD, AE, AF, AF1, 
AF10. AF2, AF3, AF4, AF5, AF6. AF7, AF8, AF9, AG, AH, Al, Al. AK, AL, AM, 
CURSORUP. CUUP. DEL. END, Fl. F10, F2. F3. F4, F5. F6, F7, F8. F9, HOME. 
SF7. SF8, SF9. STAB 


lb define the key combination Alt plus function key Fl so that it changes the 
current directory to one named WP and invokes a program named WORD, you 
could use any of the three following statements (the Enter key can be represented 
by either ~013 or }): 

AF1 CD\WP~013WORD~013 

AF1 "CD\WP ~013 WORD ~013" 


lb undefine (return to its original state) the key combination Alt plus function 
key Fl, use AF1 AF1 

Graphics Adapter or equivalent the 
ECD provides 43-line support. This 
feature is useful primarily for certain 
DOS operations, but you can also use 
it with programs that are easily modi- 
fied, such as WordStar 3.3, to take ad- 
vantage of the additional display lines. 
Most DOS commands, unfortunately, 
expect a 2 5-line display, but many, 
such as MORE, for example, can be 
patched to work with 43 lines. Others, 
including DEBUG, work great in the 
43-line mode. Switching between 2 5- 
and 43-line modes is easy. 

Displaying Menus from the 
PROMPT Command 

Because the DOS PROMPT com- 
mand can send an escape character 
to the console via a special meta 
string ($e). you could use PROMPT to 

completely control the ECD. This 
means that every time your computer 
would normally display the standard 
system prompt, the ECD can automat- 
ically display one or more windows. 
Such an ability lets you easily create 
a shell screen for DOS. For example, 
you can have help information or 
menus appear on the screen— in ef- 
fect, just a fancy system prompt— and 
you can still issue all DOS commands 

When used with its key assignment 
feature, the ECD even lets you invoke 
a program with a single key. Thus, the 
prompt menu could list each program 
and the associated key or key com- 
bination that invokes it. When you ter- 
minate the program, the PROMPT 
command also ensures that a new 
menu is displayed; that way, you 

always know what programs are avail- 
able and how to run them. 

Programming the ECD 

As with ANSI.SYS, the native ECD 
command syntax extensions were de- 
signed for computers, not for people. 
For example, to put a red-on-white 
"HELLO" followed by a magenta-on- 
black "THERE" in the first positions 
of a memory buffer, you would have 
to send the following escape se- 
quences to the ECD (where Esc refers 
to the 1-byte value of the escape char- 
acter, ASCII value 27): 


You could issue the sequence from a 
file using the DOS TYPE command 
(assuming the file contains embedded 
escape values) or an ad hoc program, 
which might translate every occur- 
rence of $e to an escape character, 
or you could simply use the system 
PROMPT command. In any case, the 
syntax is unwieldy and certainly hard 
to remember. 

Hence I developed the Console 
Utility (CU)— a program that accepts 
less cryptic commands for controlling 
the ECD functions. In general, with the 
help of the CU you have to use native 
ECD commands only for functions 
controlled by the system prompt. 
Otherwise, the CU provides a much 
easier way to issue ECD commands 
either directly on the DOS command 
line or as part of a batch file. It also 
provides help information for all the 
commands as well as general informa- 
tion about how to use the program. 
HVpe CU HELP ALL for a full list of 
commands and options.) See the text 
box 'The CU Command Syntax" on 
page 185.) If the CU is run without com- 
mand parameters, it will prompt you for 
commands with a question mark. 

When issuing CU commands from 
a batch file, you can specify an entire 
set of commands by separating the 
commands with semicolons. One of 
the CU commands, READ enables 
the CU to read and interpret one or 
more command files; consequently, 
you can create complicated window 
definitions with just one call of the CU 


190 BYTE • OCTOBER 1986 

New GPS Series: Tek sets 

the pace with SmartCursors 

and push-button ease. 

Work faster, smarter, with two new 
general purpose scopes from 
Tektronix. The four-channel,. 100 MHz 
2246 and 2245 set the new, fast pace for 
measurements at the bench or in the 
field. They're easy to use and afford, by 

On top: the 2246 with exclusive 
integrated push-button measure- 
ments. Measurements are accessed 
through easy, pop-up menus and imple- 
mented at the touch of a button. Mea- 
sure peak volts, peak-to-peak, ±peak, 
dc volts and gated volts with new hands- 
off convenience and on-screen readout 
of values. 

SmartCursors™ track voltmeter mea- 
surements in the 2246 and visually indi- 
cate where ground and trigger levels are 
located. Or use cursors in the manual 
mode for immediate, effortless measure- 
ment of waveform parameters. 

Both scopes build on performance 
you haven't seen at the bandwidth or 
prices. Lab grade features include 
sweep speeds to 2 ns/div. Vertical sen- 
sitivity of 2 mV/div at full bandwidth for 
low-level signal capture. Plus trigger 





100 MHz 

100 MHz 

No. of Channels 



Scale Factor Readout 






Volts Cursors 



Time Cursors 






Vertical Sensitivity 

2 mV/div 

2 mV/div 

Max. Sweep Speed 

2 ns/div 

2 ns/div 

Vert/Hor Accuracy 



Trigger Modes 

Auto Level, Auto, Norm, 

TV Field, TV Line, Single Sweep 

Trigger Level Readout 




6.1 kg 

6.1 kg 


3-year on parts and labor including CRT 




sensitivity to 0.25 div at 50 MHz, to 0.5 

Accuracy is excellent: 2% at vertical, 
2% at horizontal. And four-channel 
capability includes two channels 
optimized for logic signals. 
Best of all, high performance 
comes with unmatched 
convenience. You can 
see it and feel it 
— in the 

responsive controls and simple front- 
panel design, in extensive on-screen 
scale factor readouts, and in 
simplified trigger operation that includes 
Tek's Auto Level mode for automatic trig- 
gering on any signal. Start to finish, the 
GPS Series saves steps and simplifies 

Get out in front! Call toll-free today 
to order, to get more details or a vid- 
eotape demonstration. 


In Oregon, call collect 1-627-9000 

■- "■"■-<:;; : -?, 

m a it a a o 

'O^CV 7. C 

? # W 

Featuring four chan- 
nels, flexible triggering, 
extensive CRT readouts 
and push-button ease 
of use, the new Tek 
2246 (left) and 2245 
(above) bring high-qual- 
ity, low-cost analysis to 
diverse applications in 
digital design, field ser- 
vice and manufacturing. 



Inquiry 299 

Copyright ^1986, Tektronix, Inc. All rights reserved. TTA-469 


Key Assignments 

The CU also provides an easy method 
to redefine the keyboard. You can 
assign a character— letters, digits, 
special characters such as ~, \, I, ?, and 
so forth— to any of the single-charac- 
ter keys (the white keys in the center 
of the keyboard) or to a combination 
of keys. 

To redefine a key you need only 
specify that key in quotation marks, 

followed by a space and the new 
definition string of characters, which 
needs to be delimited by quotation 
marks only if the string contains 
embedded spaces. You can specify 
any ASCII character with a tilde (~) 
followed by the three-digit ASCII value 
of the keystroke. You can represent 
the Enter key either by the closing 
brace character(J) or by ~013. In ad- 
dition to the standard, typewriter-like 

Listing 1 : A sample CU command file that creates a menu and redefines 
associated keys. To execute the file, you should place the line CU READ 
STDFKEYS.CU in the AUTOEXEC.BAT file. \n addition to the standard 
ANSLSYS-type sequences that control the display colors used by DOS and the 
cursor position, all other ECD functions are accessible from the prompt string 
using the $e specification to represent an escape character. 


AF1 M CU LOCK SUPP 2 @ 25 67; CLOCK SUPP 2 @ 25 74{ 



@ 1,64 wr " 

G 2,64 wr " 
@ 3,64 wr " 
@ 4,64 wr " 
@ 5,64 wr " 
@ 6,64 wr " 
@ 7,64 wr " 

@ 2,65 mW "c 
@ 3,65 mW "c 
@ 4,65 mW "c 
@ 5,65 mW "c 
@ 6,65 mW "c 

]F1 " cW " Crossl 
]F2 " cW " Framev 
]F3 " cW " 123 
]F4 " cW " dBASE 
]F5 M cW " Rolod* 

talk " 

vork " 



DEFINE WIND 1,64 THRU 7,80 AT 1,64 

Listing 2: This sample batch file sets the system prompt to display window of 
the private buffer. Once the batch file has been executed, you can enter MENU 
ON or just MENU at the DOS command prompt to create a new system 
prompt that will display the menu created by listing 1. 


echo off 

if .%1 =» .off goto OFF 

if .%1 == .OFF goto OFF 


rem Set menu ON 


■ »m 

PROMPT $e[136;255:$e[10:$e[128:$e[1;31;40m$e[l;1H$p$e[14;206 

; 1 ;67:$e[76; 14; 1 ;74:$e[37;44m$e[25; 1H$e[K$g 
goto DONE 
PROMPT $e[136;255:$e[2A$e[s$e[14;206;1;8:$e[76;14;1;1:$e[1; 

15H$e[K$e[31 ;40m$p$e[0; 1 ;37;44m$e[K$e[u$e[B$g 

keys on the keyboard, you can also 
change assignments for any of the 
keys listed in the text box "Program- 
ming the Keyboard" on page 190. 

You can also display a window with 
an appropriately designated key or 
combination of keys, such as Ctrl- 
Home. To display window 1 , for exam- 
ple, every time the Ctrl-Home key 
combination is pressed, specify 

Creating a Prompt Command 
to Display the Menu 

To create a menu display you can use 
the CU input file like the one in listing 
1. Once the CU file has been pro- 
cessed, you can turn the menu display 
on or off by creating a new system 
prompt with a batch file like the one 
in listing 2, which sets the system 
prompt to display window of the 
private buffer. After that batch file has 
been executed you can type MENU 
ON (or just MENU), and from that 
point on, the ECD will display window 
of the private buffer in its desig- 
nated position; the key toggle settings 
and the time will appear in the upper 
right corner. (The remainder of the se- 
quences in listing 2 are standard 
ANSI.SYS codes that display the cur- 
rent drive and subdirectory in the up- 
per left of the screen and place a " >" 
as the DOS prompt in the first column 
of line 2 5.) IVping MENU OFF turns 
off the menu and places the time dis- 
play at line 1, column I, the key tog- 
gle indicators in line 1, column 8, and 
the current device, directory, and ">" 
starting in column 15. 

I designed the Enhanced Console 
Driver to provide a simpler user inter- 
face than the normally terse DOS sys- 
tem screen. The ECD achieves this at 
a relatively small cost— about 10K 
bytes of storage with no noticeable 
performance degradation. And in 
combination with the Console Utility 
the ECD provides an easy way to 
define menu screens and redefine the 
special keys. Of course it won't 
become a threat to the new multitask- 
ing windowing environments, but for 
anyone who does not want to invest 
the extra money and system re- 
sources in one of those sophisticated 
commercial programs, the ECD is a 
useful tool. ■ 

192 B YTE • OCTOBER 1986 

When Harvard needs Princeton 
they should call Logicsoft 

Whether Harvard University needs Princeton 
Graphics monitors or any of the over 800 
computer products we stock, Logicsoft can 
get it there quickly, efficiently and at the 
right price. 

Logicsoft is a direct distributor to over 
50,000 corporations worldwide including 
90% of the Fortune 1000 and most of the 
nation's leading universities and colleges 
(including Harvard and Princeton). 

Service is the difference between 
suppliers— that's why we guarantee the 
lowest price, offer free overnight delivery*, 
carry products that are fully backed by 
manufacturers' warranties and offer toll-free 
customer service and technical support. 

And we are the only direct distributor to 
offer national on-site installation and service 
on systems through our 96 authorized 
service centers. 

It's easy to do business with Logicsoft. We 
offer terms to qualified institutions; accept 
all major cards; and now our newest 
service... leasing. 

Therefore, when Princeton needs Harvard (Total 
Project Manager) they should call us too! 

L0G *ZZL HX-12 co.or monitor. High reso.ut.on, 


110 Bi-County Blvd., Dept. 543 
Farmingdale, NY 11735 
CANADA: 800-433-6235 
Domestic/lnt'l Telex 
286905 SoftUR 

To order or receive technical assistance, call our National Hotline: 


NY STATE: 1-800-235-6442 (516) 249-8440 

Customer Service: 1-800-431-9037 NYS: 516-249-8440 

FAX #516-249-5289 

EUROPE: 020-83 48 64 

Telex: 10759 Logic NL 

Mail orders to: 


Baarsjesweg 224 

Amsterdam, Holland 

^Sr* ^ ..r--) ' N° surcharge for MasterCard, VISA, American Express. C.O.D., money order, check or PO's (please call lor price verification) • No sales tax on orders shipped outside N.Y. State • Please add 2% for 

< ^™'S8^"'" iii insurance and handling ($3 00 minimum) {int'l orders add'!) • We do not bill until we ship. All products covered by mfg's warranty. Defective merchandise may be returned for repair or exchange only. We do 
not guarantee compatibility. Any goods returned for credit are subject to a 15% restocking charge. All prices and policies subject to change without notice 

*FREE OVERNIGHT DELIVERY— available on orders totaling over $100. Shipped UPS. FREE, if under $100 (within Cont. U.S.) Due to weight restrictions, printers and monitors & some misc. bulk items are also shipped UPS, FREE. 
LOWEST PRICE GUARANTEE— If you find a lower price (bonafide advertisement or quote) we'll beat it by $10. On items under $100. American Express or terms orders we will meet any lower price. We reserve the right to request a 
current written price quote. 

Free on-site instci 

Enhanced Leading Edge New IBM 
Model D XT-20 Mb 

• 512KRAM Memory 1200B 
Internal Modem • Two 360K 
Half/ Height Floppy Drives • Four 
Expansion Slots • Keyboard • Text 
Display Card • Monochrome Monitor* 
One Serial and Parallel Port • 
Software Bundle • Color Monitor 
Option Available. 

• Purchase Price: $1,375 

Lease For $59 per month 

• 512K • 20 Mb IBM Hard Drive • 
360K Floppy Drive Half /Height • Eight 
Expansion Slots • IBM Enhanced PC 
Keyboard • Asynchronous 
Communications Adapter • Free 
90-Day, On-Site Service Contract • 
Color or Monochrome Monitor Available 
as Option. 

• Purchase Price: $2,299 

Lease For $98 per month 

New IBM AT-30 Mb 

• 8 MHz • 512K • 30 Mb IBM Hard 
Drive (Full Height, w/controller) • 1.2 
Mb Half /Height Floppy Eight 
Expansion Slots • IBM Enhanced PC 
Keyboard • Serial/ Parallel Adapter • 
Free 90-day, On-Site Service Contract 

• Color or Monochrome Monitor 
Available as Option. 

• Purchase Price: $4,179 

Lease For $165 per month 

Lease or purchase systems 
from Logicsoft 

A Logiclease of any system entiltles you to free installation 
and 90-day service contract at your place of business! 
Outstanding flexibility plus possible tax benefits. 
We'll process your lease application in 24 hours! 

A purchase of any system entitles you to installation for only 
$99, and free service for 90 days at your place of business. 

New Compaq 
Portable II 20 Mb 

• 640K RAM Memory • 8 MHz • 
80286 Based CPU • One 20Mb Half/ 
Height Hard Drive (w/controller) • tii 
360K one/third Height Floppy Drive ■ 
Two Expansion Slots • Compaq II 
Keyboard • Text/ Graphics Display £| 

• 9" Text/ Graphics Monochrome 
Monitor • One Serial and Parallel Port 
Free 90- Day, On-Site Service Contrac 

• Purchase Price: $3,879 

Lease For $153 per month 

Logic AT 

FCC Class B Approved. 

• 8 MHz* 512KRAM Memory* 
80286 Based CPU □ ROM BIOS 32K 
(Includes auto system test when powe 
is turned on • 1.2 Mb High Density 
Floppy Drive • Eight Expansion Slots « 
Enhanced Keyboard • (1) Serial Port I 
(1) Parallel • Clock/calendar • 
Graphics Card • Programmable Speak 

• Automatic Lock/ Unlock Mechanism 
Monochrome or Color Monitor Available 
as Option. Hard Drive Options Available 

• Purchase Price: $1,485 

Lease For $58 per month 

100% Burn-In 
and Testing. 

All systems undergo a 48-hour 
configuration, testing and burn -in 
period. We configure system boards, 
set DiP switches, format hard drives, 
perform memory diagnostics and chet 
system with monitor. 

crtion and service 

ew Compaq 
eskpro 286-30 Mb 

i12K RAM Memory • 80286 Based 
U • One 30 Mb Hard Drive 
/controller) • One 1.2 Mb 
f/ Height Floppy Drive • Seven 
3ansion Slots • Compaq Keyboard • 
iphics Card • One Parallel Port • 
:e 90- Day, On -Site Service Contract 
/Olor or Monochrome Available as 
'urchase Price: $3,859 

ase For $152 per month 

AT&T 6300 

• 640K RAM Memory • One 10 Mb 
Half /Height Hard Drive (w/ controller) • 
One 360K Floppy Drive • Seven 
Expansion Slots • AT&T Keyboard • 
High-Resolution Monochrome Graphics 
Card • High- Resolution Monochrome 
Graphics Monitor • Serial & Parallel 
Ports • GW Basic and MS. DOS. Free 
90- Day, On-Site Service Contract. Color 
Monitor Optional. 

• Purchase Price: $1,799 

Lease For $76 per month 

(Dual Floppy) 

• 256K RAM Memory • Two 360K 
Half /Height Floppy Drives • 4.77 MHz 
8088 Based CPU • 5 Expansion Slots • 
ITT Keyboard • Text Display Card • ITT 
Monochrome Monitor (Amber or Green.) 
One Parallel and Serial Port • Color 
Option Available. 

• Purchase Price: $1339 

Lease For $58 per month 


IBM XT Compatible with speed of an AT 

• 512K of RAM Memory (Expandable to 
640K on Mother Board) • 80286 Based 
CPU running at 6 MHz • One 20 MB 
Hard Drive • One 360K Floppy Drive • 
5 Expansion Slots • ITT Keyboard • 
One Serial Port □ One Parallel Port • 
Color or Monochrome Monitor Available 
as Option. 

• Purchase Price: $2,049 

Lease For $88 per month 

ogic Turbo XT 

C Class B Approved. 
3 MHz* 640K RAM Memory 
stem ROM 8K BIOS • 360K Half/ 
ight Floppy Drive • Eight Expansion 
its • Enhanced Keyboard • (1)Serial 
Parallel Port • Clock Calendar • 
aphics Card • Monochrome Monitor • 
(or Option Available • 30-Day Money 
ck Satisfaction Guarantee • 1 Year 
rranty. Hard Drive ODtions Available. 
Purchase Price: C7QC 

T-1KX) Plus 


• 640K RAM Memory • CMOS 80C86 
Running at 7.1 MHz • Two 720K 3.5" 
Floppy Drives • One Expansion Slot • 
TOSHIBA Keyboard • LCD Display • 
Color Graphics/ Monochrome Composite 
Card • One Parallel and Serial Port • 
Clock Calendar • External Floppy Drives 

• Purchase Price: $1,799 

Lease For $76 per month 


We'll configure a system to your needs, including peripherals and software and 
make the price affordable through low monthly Logiclease payments. Here's an 
example of what you can do 1 

• 512K RAM Memory • 6 MHz • One 
30 Mb Hard Drive • One 1.2 Mb High 
Density Floppy • Eight Expansion Slots 

• IBM AT Keyboard • Serial/ Parallel 
Port • IBM Color Monitor • Color 

Graphics Card • Tobshiba 351 P/S 
Printer & Cable • Software Bundle 
(Lotus 1-2-3, dBase III, WordPerfect, 
IBM DOS 3.2). Free 90-Day On Site 
Service Contract 

• Purchase Price: $5,499 

Lease For $208 per month 

110 Bi-County Blvd., Dept. 54321 
Farmingdale, NY 11735 
CANADA: 800-433-6235 
Domestic/lnt'l Telex 
286905 SoftUR 

To order or receive technical assistance 

our National Hotline: 


NY STATE: 1-800-235-6442(516) 249-8440 

Customer Service: 1-800-431-9037 NYS: 516-249-8440 

FAX #516-249-5289 

EUROPE: 020-83 48 64 

Telex: 10759 Logic NL 

Mail orders to: 


Baarsjesweg 224 Amsterdam, 


argest selection of peripherals 
ee overnight delivery! 

w/0K 59 

W/384K 129 

W/576K 138 


Magic Card II W/384K 199 

Logic (AST Comp.) I/O 

Mini Half Card 99 


Captain(384K) 199 


Quadboard(384K) 199 

Silverboard 209 

Ems W/256K 349 

Liberty (AT) W/128K 315 


Above Board (PS/AT) 

W/128K $399 

Above Board (PC) w/64K ... 275 

Above Board (AT) W/128K . . 419 

Above Board (PS)64K 309 

Above Board (PS) 256K .... 389 

8087-2 Math Co-Processor . 1 39 

8087-3 Math Co-Processor . 1 79 

80287 Math Co-Processor . 199 



Preview $239 


The Edge 239 

Evergraphics . . . Low Price Call! 


Monochrome Graphics 

Card 199 

ColorCard 155 

Graphics Card Plus 209 


Logic (Hercules Comp.) 

Color Graphics Board ... 99 

Logic (IBM Comp.) 
Enhanced Graphics 
Adapter(EGA) 239 

Logic (Hercules Comp.) 

Monographics Board . . . 109 
Auto Switch EGA Card 359 

Modular Graphics Card 249 

Color/Mono 159 


EGA Plus Graphics 369 


EGA Board 369 

Color 400 (Princeton) 479 


Chauffeur 209 

EGA Plus 309 


Graphics Master 399 



5251-11 Plus $685 

5251-11 629 


IRMA Board 779 



Reach 1200 Half Card $299 


Evercomll 149 


Smartmodem 1200 389 

w/Smartcom II 359 

Smartmodem 2400 599 

Smartmodem 2400B 

w/Smartcomll 549 


Logic (Hayes Comp.) 1200 
Baud External Modems . 199 

Logic (Hayes Comp.) 2400 
Baud External Modem . . 309 

Logic (Hayes Comp.) 1200B 
Internal Modem with 
Mirror (Crosstalk Clone) 
Software 149 

Logic 2400B Internal Modem 
2400B w/Software 299 


Pro-modem 1200 279 

Pro-modem 1200B 
w/software 239 


Quadmodem Series 

Low Price Call! 


PC Modem 1200 Half Card . 359 

1200Plus 329 

PC Modem 2400 H a I f Car d . 469 



PC Mouse w/DR Halo 2 .... $129 

Microsoft Mouse (Serial) .. 135 
Microsoft Mouse(Buss) . . . 125 



Masterpiece Plus $119 


Diamond 39 

Emerald 45 

Ruby 59 



5151 (Deluxe) $169 

5153 (w/touch Pad) 279 

3270 PC 235 

5151 (AT&T) 189 

KeytronicJr.5151 169 



Bernoulli Box (10 + 10) ... $1999 

Bernoulli Box (20 Mb) .... 1899 
Bernoulli Box (20 + 20) . . . 2750 
Bernoulli Box Plus 4199 



Hard Drive Card (20 Mb) ... $869 
Hard Drive Card (30 Mb) ... 1049 
60 Mb Internal Hard Drive 


lnnerspacelD40Mb 1249 


Hard Card 10 Mb 629 

20 Mb Vz Htlnt 4J 

30Mb 1 / 2 Htlnt 5: 

20MbFullHt(AT) ? 

30MbFullHt(AT) Jj 

40MbFullHt(AT) ft 

80 Mb Full Ht (AT) 12' 


20Mblnt(AT) 12< 

30Mblnt(AT) 131 

40Mblnt(AT) 145 

72Mblnt(AT) 27' 



Excel Stream 20 M b I nt $6: 

ExcelStream60Mblnt 7! 

Excel Stream 60 Mb Ext . . . £ 

Irwin 110 10 Mb Int A[ 

20Mblnt S 

20 MB 325 (AT) Ext. D ^ 


Logic 60 Mb Internal 
Cartridge Tape Backup 
Kit 71 

Logic 20 Mb Internal 
Cartridge Tape Backup 
Kit a 


Image Tape Backup 

10Mblnt 7f 

I mage Tape Backup 
20 Mb Int 5E 

Image Tape Backup 
20 Mb Ext E- 


QIC60AT 12- 

QIC 60 Ext Tape Backup .. . 15/ 


60 Mb Ext 155 


Panasonic 360 K 1 / 2 Ht $1 ' 

Tandon TM-100 360 K F/Ht. . 1- 

TandonTM-100360KV2 Ht. 1f 

Toshiba360K 1 / 2 Ht 1 



200Wt(PC) $2^ 

300Wt(XT) 3* 

Hard Card 20 Mb 699 


10 Mb y 2 Htlnt 465 


'Due to weight restrictions, Printers and Monitors and some misc. bulk items are shipped UPS — free. All prices and policies subject to change without notice. 


Look for the items printed in blue 
to identify our line of LogicWare 
computer hardware products 
They are fully compatible with, but 
priced well below, the major 
manufacturers. You save- not by 
our use of inexpensive abor and 
parts-but through state-of-the- 
art technology. 
Each product carries our 
5 year unconditional replace 
or repair warranty. 


Canon LBP8A1 Laser Printer 

Purchase price $1985 

• 8 Pages Per Minute • 128K Built-in 
Memory • Super Quiet • Has Four Built- 
in Fonts plus the ability to accept fonts 
downloaded from a computer and various 
plug-in font cartridges • As many as 16 
different fonts can be mixed on a single 
page. Great for Word Processing, 
Spreadsheets & Business Graphics. 


Lease for $122 per month 
Purchase price $3089 



ScLASERplus $ 3 ^ 


Spellbinder Desktop 










The Nation's l< 

and ft 

FX-286 589 


6100 389 

6300 699 


Pinwriter P-5 Series 

Low Price Call! 

Pinwriter P-6 489 

Pinwriter P-7 679 


182 Plug&Play 223 

192 Plug & Play 349 

193 Plug & Play 535 

2410 P Plug&Play 1729 


KX1091 245 

KX1595 619 


P/S321 489 

P341 799 

P/S351 999 


MSP10 299 

MSP15 399 

MSP20 339 

MSP25 499 

Premier 35 509 



Laser Printer LBP8A1 $1985 

Laser Printer LBP8A2 3089 


Laser Printer 2489 

Laser Printer Plus 2899 

LaserJet 500( + ) 4299 


Laser Pro Express 1699 



1043 $7899 


4550 (6 Pen Plotter) 395 


7475A 1629 

7550 3349 

DMP40 899 

DMP41 2549 

DMP42 2549 

DMP51 3849 

DMP52 3849 

DMP52MP 4889 



Microfazer Series 



Color600 $ 389 

Color 722 499 

Color 725 LowPriceCall! 

12" Amber 310A 149 


Color Monitor 545 

Monochrome Monitor .... 225 
Enhanced Color Display . . . 679 


JC— 1401 P 3A Multi-sync 

color w/swivel base .... 559 

RGB HX-12 419 

RGB HX-12E 535 

RGBSR-12 559 

RGBSR-12P 625 

Amber Max 12 159 


Amberchrome12" 145 

Enhanced Graphics 

Monitor w/swivel 549 


121/122 145 

620 415 

640 515 



Six Pack Premium $379 

Six Pack Plus (384K) 229 

Rampage W/256K 249 

Rampage (AT) W/512K 449 

Advantage (128K) 359 

I/O Mini Half Card 119 

I/O Plus II 125 


Logic Above Board (Lotus/ 
Intel/Microsoft Expanded 
memory specification) . . 189 

Logic (AST Compatible) 
Multifunction Board 
W/384K 159 

Logic (AST Compatible) AT 
Multifunction Board 
W/128K (Expandable to 
2.0Mb 219 

Logic (AST Compatible) 
576K Ram Board 1 / 2 Card 

Circle #400 on reader service card. 

Free overnight delivery on software 
for all your IBM PC applications! 



Processing your 
words now 
becomes more 
through this 
amazing clone! 


S79 95 


A clone that 
gives you the 
same capabil- 
ities at a very 
capable cost! 


$79 95 

1-2-3 CLONE 

Now, a 1-2-3 
clone; we've 
cloned the soft- 
ware, but we 
didn't clone 
the price! 


S79 95 

You may return LogicWare software for any reason within 30 days of purchase. Please call for return authorization number. 


Display Write III $369 

EasyWriterll 195 

Microsoft Word 3 269 

Multimate 229 

M ultimate Advantage . . 277 

NewWord3 269 

OfficeWriter 245 

PFSWrite 85 

Volkswriterlll 147 

WordPerfect 219 

Wordstar 169 

Wordstar Pro Pak 239 

Wordstar 2000 245 

Wordstar 2000 Plus 295 

XY Write III 219 


Fancy Font $145 

Punctuation & Style ... 75 
Reference Set Low Price Call! 

Turbo Lightning 57 

Word Finder 59 


Cornerstone $ 75 

dBase III Plus 429 

Knowledgeman/2 275 

Paradox 495 

Powerbase 209 

Q&A 249 

R. Base5000 265 

R: Base System V 369 

Revelation 495 

Reflex 59 

ThinkTank 109 


Clipper $349 

Clout 2 139 

dGraph III 149 

Ext Report Writer 85 

Quickcodelll 145 

Quick Report 139 


Ability $ 69 

Enable 339 

First Choice . . Low Price Call! 

Framework II 419 

Lotus 123 (Ver. 2.01) 317 

Multiplan 119 

Smart Series 409 

SupercalclV(NEW) 279 

Symphony 443 


Lotus Report Writer $109 

Cambridge Spreadsheet 

Analyst 75 

Sideways 45 

Spreadsheet Auditor. . . 99 

SQZ 65 

Quickcode for 1-2-3 85 


A low cost 
alternative to tape 
backup hardware. 
Back up 10 Mb in 
less than 8 
minutes using 5 1 /4 




The next step for 
the Power User! 
Format your own 
reports, forms and 
mailings using 
1-2-3 files. 




Now you can 
create extra wide 
printouts of your 
spreadsheets without 
the mess of staples, 
glue or tape. 




Sc LASERplus $329 

SofType 795 

Spellbinder Desktop 

Published 429 


Chartmaster $209 

Diagram Master 195 

Diagraph 309 

Energraphics w/Plotter 

Option 289 

Graphwriter 219 

Harvard Presentation 

Graphics 289 

Map Master 229 

Microsoft Chart 179 

PFS Graph. . 
Sign Master. 



Auto CAD 


Generic CAD . . 
Pro Design II . . 



CCompiler(MS)(4.0) . . 


CobolCompiler(MS) . . 


Fortran Compiler (MS) . 


Lattice C Compiler . . . 


Macro Assembler (MS) 


Pascal Compiler(MS) . 


Quick Basic (MS) 


True Basic 


Turbo Pascal (plus BCD 
&8087) 65 


Harvard Total Project . . $285 

Microsoft Project 237 

Super Project Plus 285 

Timeline 235 


Managing Your Money . $109 
Dollars and Sense 107 


BPI $299 

Champion III 279 

Computer Associates . . 317 
(formerly I US) 

Dae Easy 57 

Great Plains 447 

Open Systems (3.0) 417 

Real World 395 


Copy II PC $ 35 

Crosstalk XVI 99 

Fast Back 93 

M icrosoft Windows. .. . 67 

Norton Commander ... 49 

Norton Utilities 55 

Prokey 77 

Remote 99 

Sideways 45 

Sidekick 47 

Superkey 45 


• Brand new Programmer's Language and Utilities Guide • A 

convenient and valuable listing of timesaving tools for the 
programming professional • Complete with product description, 

• Brand new Productivity Guide • Full line catalog of software 
enhancements for the business professional • Full descriptions of 
templates, memory management, menu management, backup 
software, training, and much more. 

Circle #400 on reader service card. 



by Roedy Green 

A database language that 
can run backward in time 

ABUNDANCE IS a public domain, 
FORTH-based, data-entry, database, 
screen-handling language that auto- 
matically handles the routine "house- 
keeping" that accounts for a major 
part of interactive application code. It 
does not use artificial intelligence 
techniques; it simply performs these 
tasks as a side effect of the work you 
explicitly ask it to do. If you want to 
take control of any of these tasks 
yourself, you can. 

Abundance was originally designed 
to serve charities working to create an 
abundance of food, water, and shelter 
on the planet; hence, its name. But 
because of its features, it has become 
a business programming language 
and has been used in production en- 
vironments since 1981. Although 
Abundance was designed for the 
computer-naive volunteer worker, it is 
responsive enough for a business en- 

| Editor's note: The Abundance package of 
15 disks includes source code in IBM 
Backup/Restore format for Abundance itself, 
a 32-bit FORTH compiler, a postfix assem- 
bler, a screen editor, some sample applications, 
documentation, tutorials, and more. Since it 
is too large for BYTE to distribute, it is avail- 
able only by mail for $75 U.S. cash, check. 

or money order (the cost of duplication) from 
the author at his address.\ 

A Rich Language 

Abundance is a rich language with 
600 verbs of its own, 400 from Forth- 
83. 300 from assembler, and 900 hid- 
den ones. It can open files, validate 
data entry, convert values back and 
forth between binary and ASCII, keep 
track of how many elements in an ar- 
ray are in use, read from and write to 
disk, and lay out fields in columns on 
an appropriately labeled screen— all 
without being explicitly asked. 

If you recompute a variable current- 
ly displayed on the screen, Abun- 
dance, like a spreadsheet, automati- 
cally refreshes the screen with the 
new value. It understands the zip code 
system, the telephone numbering sys- 
tem, and the states of the union and 
can cross-check all three; it can per- 
form similar cross-checks for other 
countries as well. Abundance knows 
that phone numbers need a dash in 
the middle and that area codes are 
enclosed in parentheses. It also knows 
that 555-1212 is not the phone 
number of any real person. It knows 
the calendar; it knows that 1 900 was 
not a leap year and that 2000 will be. 

And it knows that the people in India 
use the date format DD/MM/YY while 
Swedes use YYMM.DD. Most impor- 
tant, however, Abundance takes the 
initiative and uses this knowledge 
without your having to explicitly ask 
for it. 

Abundance also understands the 
limitations, quirks, and control se- 
quences of at least 20 brands of 
printer. It lets you think that you have 
the perfect printer, one that can print 
in any pitch, any type style, and any 
of the 2 56 accented and special char- 
acters. You can use words like ITALIC, 
BOLD, and WP-QUAUTY and Abun- 
dance will do the best it can with your 
actual printer. It can also number your 
pages 1 of 20, 2 of 20. etc. 

Abundance can speak in English, 
French, Swedish, or Esperanto, and 
you can key all the accented charac- 
ters without resorting to the numeric 
keypad. It can also interface with 
other packages, including Btrieve, 
Lotus 1-2-3. VP-Planner, Microsoft 

Roedy Green is president of Canadian Mind 
Products (11-3856 Sunset St.. Burnaby. BC. 
Canada V5G 1T3). He has a B.S. in math- 
ematics from the University of British 

OCTOBER 1986 -BYTE 193 


Word Mail Merge. Ready. 1 , Optimum 
Data Externa] Sort. SuperKey, and 
Pro Key 

In addition to its main features, 
Abundance has many other novel fea- 
tures with colorful names like humps, 
jives, combos, anchors, gauntlets, liv- 
ing fields, fast forwards, variable vari- 
ables, moods, promises, safes, rikt- 
nummers, and graceful bailouts. 

The User Interface 

Because Abundance is a superset of 
both 8086 Assembler and 32-bit 
Forth-83 and because the hidden 
verbs that form the language itself are 
available to you, you can interface 
with it at any level you choose. 

When you use Abundance, you see 
a traditional full-screen arbitrary 
layout, often in columns or rows with 
boxes, color, and data labeled with 
the appropriate variable names. Each 
time an Abundance application ex- 
pects you to key in data, it highlights 
the field in reverse video and puts an 
oversized blinking cursor on the first 
character of the field. It then produces 
a uniform prompt message contain- 
ing the name of the variable being 
keyed, its upper and lower acceptable 
bounds (or a list of choices), what sort 
of data it wants (name, date, etc.), and 
usually some other explanatory infor- 
mation. In addition, Abundance main- 
tains the Caps Lock, Shift, and Num 

Lock keypad indicators. 

You can use the backspace, arrow, 
and function keys to edit the data in 
such a way that they mimic your 
favorite word processor. If you get 
lost, you can hit the Oops key (the FIO 
function key) to put the field back the 
way it was. Abundance usually detects 
any errors in keying as soon as you 
make them. It makes various sounds 
for different classes of warnings and 
errors that indicate immediately what 
you did wrong. Abundance works in 
the background, inserting the Shift 
key when you forget to, jumping over 
the dash in a phone number, and 
keeping numbers right-justified (cal- 
culator-style) as you enter them. 

If you realize you made a mistake 
in a prior field, you can hit the up ar- 
row to make the program "run back- 
ward in time." Then you can enter a 
new value for the prior field and use 
the down arrow to carry on where you 
left off. You can also hit the Escape 
key at any time. In general, this stops 
the application in an orderly fashion 
so that files are kept logically consis- 
tent and no data is lost. 


jaunting is the ability to run backward 
in time. It is simply a streamlined ver- 
sion of the IBM OS/370 checkpointing 
facility. When you key in a field, Abun- 
dance secretly takes a snapshot" of 

the state of the application program. 
When you hit the up arrow, it finds the 
appropriate old snapshot of the ap- 
plication and restores it to the current 
view. The application then carries on 
as if it had never been any further 
than that. 

Jaunting has no perceptible over- 
head. It is quick because you don't 
need to save all of RAM, just the data 
stack, the return stack, and a few 
critical internal-state variables. As in 
FORTH, the data stack holds tem- 
porary variables and parameters 
passed to procedures, and the return 
stack keeps track of which procedure 
called which procedure. 

Surprisingly, the values of the vari- 
ables are not saved as part of the 
snapshot. If Abundance did save the 
variables and then restored them to 
the old state after jaunting backward, 
you would lose the data you had 
entered since then. When the applica- 
tion program wakes up after its jaunt, 
the values of the variables keyed just 
prior to jaunting are intact. You might 
think it would confuse the program to 
find the variables it is about to re- 
quest already present, but in practice 
this rarely causes any problem. 


Jaunting has some wonderful fringe 
benefits. For instance, an Abundance 




The best Low Cost fully Stand Alone (E)EPROM Programmer on the market 


(Model BUV-3C) 
while supply lasts 



[^ 30 Key Full Travel Keyboard 
2) 6 Character 0.6" 7 segment LED 
2) 32K Byte x 8 RAM (256K Bit) 
[^ Supports all popular single voltage 


from 2716 -27256 
El Fast Intelligent Algorithms 
Options: PROMsoft IBM-PC Compatible Software Driver 

Toll Free: 800-523-1565 / In Florida: 1-305-994-3520 
Telex: 4998369 BYTEK 

&\ Fully software controlled programming 
(no configuration plugs required) 

[^ Stand Alone Operation 
(includes Data Editing) 

&\ RS232 Serial Port supports 
over 12 formats 

2) Baud Rate: 110-9600 




1021 South Rogers Circle • Boca Raton, Florida 33431 

194 BYTE' OCTOBER 1986 

Inquiry 52 

More of the Pacific 
from the airline that 
brings you more j 
of thellS. m 

No other U.S. airline offers you 
more across the Pacific than United. 

United is the only U.S. airline 
serving thirteen cities in the 
Far East and South Pacific. With 
more nonstops from more U.S. 
gateways than any other airline. 
A total of 84 nonstops every 
week from six convenient U.S. 
gateways. Including nonstop 
service to Tokyo, Hong Kong, 
Osaka, Taipei, Sydney and 

United's Mileage Plus 
Frequent Flyer Program offers 
exciting travel awards that can 
take you around the world. 

And United's Royal Pacific 
Service offers you the best of the 
friendly skies every step of 
the way. 

So let United bring you 
more of the Pacific. 

Call your Travel Agent or 
United Airlines. 

Tokyo Taipei Singapore 

Osaka Hong Kong Sydney 

Seoul Manila Melbourne 

Beijing Bangkok Auckland 


application can assert that a certain 
expression must be true, for example, 
that three fields must add up to 100 
percent. If the program detects that 
a MUST has failed, it jaunts the pro- 
gram back to the first input involved. 
As a programmer, you can optionally 
provide hints as to which field you 
think is wrong, but even if you guess 
wrong, the end user can hit the up 
and down arrow keys to correct the 
real culprit. 

There is also a variant of the MUST 
called the WARN that makes an "eh?" 
noise— I am Canadian— and asks you 
to confirm that an unusual condition 
is indeed correct. If you answer "No," 
the program jaunts backward the way 
a MUST would. 

Implicit Array Subscripts 

In traditional programming languages, 
for every array you declare, you must 
also declare three other variables: Ar- 
rayMax, the maximum size the array 
can be; Array HighWater, the number 
of array slots currently containing 
data; and Arraylndex, the array ele- 
ment you are currently working on. 
Then you refer to Array[Array Index] 
over and over again. You rarely use 
any other subscript. When you do, it's 
usually by mistake, and you spend a 
long time trying to find the bug in 
your program. In addition, you must 
manually maintain Array HighWater 
and make sure that Arraylndex stays 
safely within bounds. And you must 
explicitly mention Arraylndex and 
Array HighWater every time you loop 
through the array elements— yet an- 
other place for bugs to creep in. 

Abundance dispenses with all but 
the array index. It invisibly maintains 
ArrayHighWater and ensures that the 
index remains within bounds. You 
don't need to write [Arraylndex] each 
time; it is assumed. And you don't 
need to mention anything other than 
the array index in a «<FOR loop 
since Abundance keeps track of the 
array's upper limit. 

You can convert a program that 
handles a single record to one that 
handles an array of records simply by 
changing the declaration. You don't 
need to change any procedural code; 
you need only add one line of code 
to set the implicit subscript. (The 


1 1000 





1 1000 



Figure I : The only change necessary to 
convert a program from one that keeps 
its data in an array to one that keeps 
it in a file. 

equivalent changes in Pascal would 
require modifying a great many lines 
of code.) 

File Handling 

To an Abundance application, a file is 
simply a large array, too large to fit 
into RAM. You read and write the 
records by changing the implicit array 
subscript that indexes the record you 
want to work on. Abundance auto- 
matically handles blocking and de- 
blocking, reading, writing, opening, 
closing, caching, and "dirty" bits. It 
does everything it can to avoid doing 
physical disk I/O. It handles standard 
DOS files with fixed-length records, 
but it also has other higher-perfor- 
mance options. 

You can converts program from 
one that keeps its data in an array to 
one that keeps it in a file by changing 
the word <«FLEX in the data 
definition area to <«SEQ and add- 
ing an external DOS filename (see 
figure I). (The equivalent change to a 
Pascal program would require almost 
a complete rewrite.) 


There never seems to be enough 
room on the screen to simultaneous- 
ly display everything you would like 
to show. You may only have room to 
show the details of four transactions 
when you would like to show 40. The 
ability to scroll lets you show any of 
the 40 that you want, four at a time. 
In traditional languages, handling this 
scrolling can be very complex. 

In Abundance, scaffolds come to 
the rescue. You simply write the name 
of a particular scaffold in the declara- 

tion of a variable array element. A 
scaffold might have a name like 2x6 
for two rows of six columns or 4Deep 
for rows with a maximum of four ele- 
ments. From then on, Abundance 
monitors the implicit subscript of the 
array. It makes sure that the current 
element is always visible on the 
screen. As the subscript changes, 
Abundance scrolls the display auto- 
matically so you can always see the 
current, some preceding, and some 
succeeding elements in the array. 

Other than in the declaration, the 
application code is totally oblivious to 
this scrolling. Abundance makes sure 
that the array element you are keying 
or computing is always visible. In ad- 
dition, scaffolds can take any shape 
you can describe; they don't need to 
be simple rowed windows. 

What You Need 

To experiment with Abundance, you 
need MS- or PC-DOS 3.1 running on 
an IBM PC, XT, AT, or a close clone. 
You need at least 320K bytes of RAM 
and a hard disk. The applications you 
write can run on floppy disk systems, 

You need to know FORTH. I recom- 
mend practicing with a 16-bit FORTH 
compiler using Leo Brodie's book 
Starting FORTH (Prentice-Hall 1981) if 
you are currently unfamiliar with the 
language. Sooner or later you will 
probably want an assembler to gen- 
erate customized versions of the BBL 
FORTH compiler and a text editor to 
edit the assembler source code. 
Depending on how you use Abun- 
dance, you may also want other 
packages, such as a keyboard en- 
hancer, an external sorter, a B-tree 
handler, a form-letter generator, or an 
automatic means of transferring a 
database into Abundance. 

What You Get 

Abundance and its documentation 
come on floppy disks in IBM Backup/ 
Restore format. You are strongly en- 
couraged to copy the disks and give 
them to your friends. There is only 
one restriction on how you may use 
the package: You may not use it for 
any military purpose. You are wel- 
come to create your own dialects of 
Abundance, sell it, or cannibalize it. ■ 

196 B YTE • OCTOBER 1986 








Brother All Models Save 
'Cannon Laser Printer 1949 
Citizen MSP- 10 $279 

MSP-15 S379 

MSP-20 $315 

MSP-25 $479 

Premier 35 ... $479 

Diablo D-25 . . . ... $489 



f All Printer Models . . , 

.... Save 

.... Save 

W IBM Proprtnter 












... $959 

P6 . . . 





All Printer Models 











All Printer Models Save 


Toshiba 341 $769 | 

321 Parallel & Serial $449 

P351 Parallel & Serial $91 9 

Loser Printer Save 


MaxellMD-2(Oty 100) $100 

Sony MD/2 (Oty 100) $ 1 1 9 


Amdex All Monitors . . . Save 

NEC All Monitors . Save 

Princeton Graphics Save 

Zenith All Models Save 


Qume QVT Green 101 $299 

QVT Amber 101 $314 

Wyse 30 $299 

50 $419 

75 $559 

Wyse 85 $439 

Wyse 350 $859 

Zenith Z-22 $455 

Z-29A $559 

Z-49 Save 


Iomega Bernoulli 10 meg $ 1359 

Bernoulli 20 meg $ 1 749 

Bernoulli 40 meg $2469 


20 meg w/Westem I/O $395 


Signalman Express 
Practical Peripherals 

Practical 1200 Baud 


Anchor Automation 

All Modems . 


. Save 


Epson Hi-80 



Prometheus All Models Save 

US Robotics Courier 2400 $369 

Password 1200 $175 

Microlink 2400 $369 


AST Advantage $329 

Rampage AT $445 

Rampage PC $239 

Six Pack Plus $159 

Hercules ColorCard $149 

Graphic Cord $179 


Above Boord PC ( 1 1 10) $239 

Above Boord AT (2010) $329 

Above Boord PS/AT (21 10) $369 

Paradise Modular Graphic 06-1 $239 

Five Pak $ 1 1 5 

Plus Development 

Plus Hard Cord 20 Megabyte $669 


Gold & Silver Boards Save 

Quadlink $329 

Quad EGA + $359 

Tec Mar Graphics Master $445 
Captain No Memory , , $169 


PC 1 Drive 256K $ 1 1 99 

XT 1 Drive 256K $1729 

XT 1 Drive 20 Meg 640K $2169 

AT/68 $2849 

AT/339 $4449 

com pah 

Portable II -2 Drive . . $1649 


Sr. Partner Dual Diive $1309 

Exec. Partner Dual Drive SI 899 


T-1100 SI 299 

T-1100 Plus Save 

T-3100 Save 


Sperry IT S 1999 

Other Models Save 


Wyse pc 1 100-1 S979 

Wyse P c 1 100-20 S1S39 

Zenith Computer Products 
SAVE up to 50% 


Keytronics 5151 $159 


Flight Simulator $28 

PC Logo $75 

Typing Instructor $28 

Typing Tutor III $28 


Enable 1.1 $319 

Framework II Save 

Smart Software System $379 

Symphony Save 


Chortmoster . , $ 1 99 

Diagram Master $ 1 85 

Energraphia 2.0 $269 

In-A-Vision $249 

Microsoft Buss Mouse 

w/PC Paintbrush 3.0 $106 

Microsoft Chart $ 1 64 

Microsoft Serial Mouse $119 

Newsroom . , $31 

PC Draw $199 

Click Art Personal Publisher $99 

PC Mouse w/Dr. Halo II $99 

PC Paint w/Mouse $115 

PFS Graph $76 

Printmaster , $29 

Signmasrer $1 32 

Turbo Grophix Tool Box Save 

IBM PC AND 100% Compatibles 


CompuServe Starter Kit Best Price 

Crosstalk XVI $92 

MS Access 1.01 $139 

PFS Access $76 

Remote $92 

Smortcom II $83 


Copy II PC $19 

1 DIR $46 

Fastbock $86 

Norton Utilities 3. 1 $48 

Printworks $36 

Sidekick $30 

Sidekick (Unprotected) $47 

Sidekick— Superkey (Bundle) $85 

Travelling Sidekick $39 

Turbo Prolog $54 

Sideways 3.1 $34 

Superkey $39 


Harvard Total Project Manager $262 

Microsoft Project $219 

Super Project Plus $239 


Leading Edge Word Processor $48 

Leading Edge W/P w/Spell & Mail $72 

Lightening $55 

MicrosoftWord 3.0 $249 

Multimote Advantage $269 

PFS: Write w/Spell Checker $76 

Wordstar w/Tutor $1 62 

Wordstar Pro Pack $233 

Word Perfect (Ver.4.1)$196 
Wordstar 2000 + 2.0 $278 

Timeline 2.0 :$209 


C Compiler (Microsoft) $249 

Fortran Compiler (Microsof ) $195 

Lattice C Compiler $242 

Macro Assembler (Microsoft) $84 

Pascal Compiler (Microsoft) $ 1 66 

Quick Basic 2 $55 

Run C Interpreter S65 

Turbo Pascol w/8087 & BCD $59 

Turbo Database Tool Box $ave 


Lotus 1-2-3 Save 

Multiplan $108 

Spreadsheet Auditor 3.0 $82 

VP Planner $48 

Supercolc 4 $259 


Dollars & Sense w/Farcast S94 

Tobias Managing Your Money . Save 


Clipper $329 

Cornerstone $67 

dBose II Save 

dBase III Plus Save 

Extended Report Writer $74 

Knowledgeman II $249 

Nutshell 2.0 . . $59 

PFS: File . . $76 

PFS: Report $67 

Ouickcode $138 

GuickReport $138 

Reflex . . $82 

Think Tank $91 

R:Base 5000 

System V $329 


Over $200 worth of 
Paperback Software Programs 

^Qr¥ with each system 

Turbo PC/XT 


256 Memory. One 360K Brand Nome Floppy Drive 

135 Watt Power Supply. Slide Cose, AT Style Keyboard 

8 MHz Clock Speed. (Keyboard Selectable). B Expansion Slots 

Turbo PC/XT w/256K & 1 Drive $449 

Turbo PC/XT w/640K& 1 Drive $499 

Turbo PC/XT w/640K & 2 Drives $599 

Turbo PC/XT w/640K, 1 Drive & 20MG $929 

MonGrophics Card with Software and Parallel Printer Port .... $ 79 

Color Card with Parallel Print Port $ 69 

Multifunction Cord w/Softwore $ 79 

Amber Monitor (TTL) $ 95 

Color Monitor (RGB) $289 

Sego Enhanced Graphics Cord $259 

I/O Cord (Seriol/Parollel) $ 39 

I/O Cord (Serial/Clock Calendar) $ 39 

I/O Card (Parallel) . $ 39 

5151 Clone Keyboard $ 79 

Product shipped in factory cartons with manufacturer's warranty. Please odd $ 10.00 per order 
for UPS shipping. Prices & availability subject to change without notice. Send cashier's check or money order ... all other checks will delay 
shipping two weeks. 

Inquiry 271 for MS-DOS Products. Inquiry 272 for all others. 





r £&oiPfli£M 

When 1-2-3® was first introduced it quickly became the best-selling, best-working software in 
the industry. Tbday it's practically an industry all by itself. 

An example : there are more than 1000 independent software developers who have created and 
continue to create specialized applications for 1-2-3. . .steadily adding value to the product for people 
in all areas of business. Tbday 1-2-3 is the engine that drives an industry full of software tools designed 
for such specialized jobs as construction management, tax planning, business modeling and more. 

Add to this Lotus supported companion products such as 1-2-3 Report Writef," Freelancef 
Graphwritei^— and soon-to-be available products such as Lotus HAL™ and others— and it's clear 
that you're looking at an entire system of products to help you work more productively with 1-2-3. 

All of which makes 1-2-3 better than it ever was. 

About a thoustrnd times better, in fact. 

Learn about the 1-2-3 system and how it can work for you. TMk to an authorized Lotus dealer. 

Lotus 1-2-3 

The business software integrating spreadsheet, graphics and database. 

© 1986 Lotus Development Corporation. Lotus, 1-2-3, Freelance and Graphvvrilerare registered trademarks 

of Lotus Development Corporation. 1-2-3 Report Writer and Lotus HAL are trademarks of Lotus Development Corporation. "Lotus HAL is distinguished 

from HAL, which is a trademark of Qantel for its Hotel and Leisure Software'.' 



There are enough copies of Symphony® software in use today to make Symphony, by itself, the 
fourth largest independent microcomputer software company in the world. Now let's discuss why. 

It's a truly complete workstation for the modern manager. . . incorporating 1-2-3's® powerful 
spreadsheet capability with Symphony's own word processing, graphics, database and communica- 
tions. All of them working together, all in one program. 

As your computer knowledge grows, so Symphony grows. The more you use Symphony, the 
more you find you can do with it. And with a growing line of Symphony add-in products from 
Lotus® (Tfext Outliner, Spelling Checker, Symphony Link™ etc.), Symphony offers steady and seem- 
ingly endless potential for expansion. 

A workstation. Thoroughly integrated. Geared for growth. 

That's why Symphony is one of the world's most successful business software programs for 
IBM® personal computers and compatible products. 

And that's why you ought to get a complete demonstration. 

Lotus Symphony 

A complete general-purpose software tool built around the world's leading 
spreadsheet technology. 

© 1986 Lotus Development Corporation. Lotus, 1-2-3 and Symphony are registered trademarks of Lotus Development Corporation. Symphony Link is a 
trademark of Lotus Development Corporation. IBM is a registered trademark of International Business Machines Corporation. 









10 MHz 286 TURBO 

The Code of the West 

The Good 

286 Turbo™ 

Western Computer Corp. has built 
a strong reputation in the Micro- 
computer Industry by sticking to a 
few basic principles. We call it the 
"Code of the West" and it goes 
something like this: 


with added features like 8-10 MHz 
switchable, 512K of RAM expand- 
able to 1MB, Standard RS-232, 
Parallel Ports and 1 year Warranty 
on parts and labor. 


it doesn't matter how good a deal 
you make if you have to wait 
forever to get it! 


and pass the savings on to the 

202 B YTE • OCTOBER 1986 


we can't think of anything worse 
than getting a good deal on a new 
system, but not being able to run 
your favorite Software! By the 
way, we use Phoenix Bios for total 



The Bad 


What could a Personal Computer 
with fewer standard features, actual- 
ly do for you that would compel you 
to part with an additional $3,300.00. 
Will it pick-up the kids from school, 
wash the car or walk the dog? Think 
about it! 

& The Ugly 

Regardless of what you pay for it, 
a Foreign Import can be one big 
gamble, with no guarantees of com- 
patibility, service, or support. 

Western Computer Corp. has a full 
line of personal computers and 
peripherals designed around your 
needs and your budget including: 
and . . . 
. . .Coming soon-WESTERN 80386? 1 

Call one of our salespersons at 
(714)553-1611 to find out how to 
hang-on to more of your money! 

vVesfern Computer 

17781 Mitchell St., Irvine, CA 92714 USA 

Phone (714) 553-1611 

Customer Service Only (714) 533-1705 

Telex: 7566731 


FAX (714) 553-0236 

Western Computer Australasia Limited 

4-82 Abbot Street, Ascot Brisba 

Queensland, Australia 4007 

# (07) 268-6589 - Telex: AA144746 

FAX: # (07) 2685256 - Answer Back MCGUIR 

Western Computer Spain 

Diputacion, 238-6° Despacho 8 

08007 Barcelona Spain 

Tele: 317 7128 

Western Computer Greece - Busisof t Ltd. 

102 Syngrou Ave., Athens 11741, Greece 
Tele: 902 4248 - TLX: 210364 

Inquiry 322 for End-Users. Inquiry 323 for DEALERS ONLY. 



by Robert A. Baumann 

This program for the IBM PC 
emulates the Zilog Z80 and CP/M 2.2 

Z80MU ("the Emulator") runs on the 
IBM PC and emulates the Zilog Z80 
processor and CP/M 2.2. It can be 
used as a Z80 development system 
whether or not the final Z80 code is 
designed to run under CP/M. The 
Emulator requires PC-DOS 2.0 or 
higher. While memory requirements 
vary depending on which Emulator 
facilities you use, if a CHKDSK of your 
system shows at least 2 56K bytes of 
free memory you have room to run 
the Emulator. Computerwise Consult- 
ing Services developed the Emulator 
and decided to release it to the public 
domain for three reasons: it's good 
advertising for the work we do, we've 
benefited from public domain soft- 
ware in the past and this is one way 
to return the favor, and we get the 
benefit of hundreds of testers. | Editor's 
note: The executable code for the Z80MU 
runs on an IBM PC. The archive file 
Z80MU3 10. ARC contains six. files, including 
the emulator and a user's guide. See the in- 
sert card following page 320 for details. The 
programs are also available on BYTEnet: see 
page 4.| 

The heart of the Emulator is a care- 
fully coded "Z80 engine" (written en- 
tirely in 8088 assembly language) that 
emulates Z80 op codes, the CP/M 

BIOS and BDOS functions, and a VT52 
terminal for full-screen CP/M applica- 
tions (e.g., WordStar, dBASE II, etc.). 
Around the Z80 engine is a whole 
lot of high-level code (written in 
Lattice C) that provides the user 
interface, debug commands, PC-DOS 
interface commands, a full Z80 disas- 
sembler and RESOURCE facility, and 
environment control. 


The Emulator's Z80 engine emulates 
the Z80 almost perfectly, down to an 
emulation of all six flag bits in the 
flags register. Even the seldom-used 
half-carry and add/subtract flag bits 
are emulated. But for faster execution, 
the Emulator ignores the two unused 
bits in the flags register, so these will 
not act exactly as they would on a real 

I/O instructions (the INs and OUTs) 
perform everything except the actual 
strobe of the I/O data lines. The data 
transfer has been disabled because it 
is dangerous to have Z80 code ac- 
cessing I/O addresses that mean 
something entirely different on the 
IBM PC. But setup, auto-increment of 
registers, and flag effects have been 

emulated even for the INs and OUTs. 

We took a less precise approach 
when emulating CP/M 2.2. We wanted 
to keep the interface close to CP/M's 
but weren't interested in emulating 
the limitations of CP/M. We wanted to 
include many of the benefits of PC- 
DOS and to add many more built-in 
commands than were available with 
CP/M. We also demanded the largest 
possible Itansient Program Area 
(TPA— the amount of memory avail- 
able to be used by a Z80 program). 

So we decided to support only 
"well-behaved" CP/M applications. A 
well-behaved CP/M program is one 
that accesses the disk via CP/M's file 
BDOS functions and doesn't look too 
closely at the reserved fields of the 
file control block (FCB). It doesn't use 
the Z80 IN or OUT instructions. It per- 
forms device I/O (to the screen, the 
printer, etc.) via BIOS or BDOS calls. 

The program interface (via the BIOS 
and BDOS) is exactly the same as 
CP/M's. Some BIOS and BDOS func- 


Robert A. Baumann, the owner of Computer- 
wise Consulting, writes custom software for 
the IBM PC, mostly in assembly language 
and C. He can be contacted at P.O. Box 81 3. 
UcUan. VA 22101. 

OCTOBER 1986 • BYT E 203 


tions that are hardware-specific— or 
expect disks to have the CP/M for- 
mat—are not supported. 

The handling of commands and 
command arguments (the command 
"tail") appears to the Z80 application 
exactly as it would on a real CP/M sys- 
tem. The default FCB at 005C is for- 
matted with the filename implied by 
the first command-line argument, and 
the FCB at 006C with the second 
argument. (All addresses are hexadec- 
imal unless otherwise noted.) The 
byte at 0080 is set to the number of 
characters in the command tail and is 
followed by an uppercase version of 
the command tail as typed by the 
user. The Emulator has a TPA of 
65.022 bytes, more than is available 
on most "real" CP/M systems. 

We built a pseudo VT52 terminal 
into the Emulator, since many CP/M 
applications (especially those doing 
full-screen editing) assume that they 
are being run from a serial ASCII ter- 
minal. A list of some of the CP/M ap- 
plications that we have successfully 
run is shown in table 1. 

What Won t Run Under the 

Some hardware-specific CP/M pro- 
grams cannot be run under the 

Emulator or must be run carefully to 
avoid functions that examine the 
hardware environment. STAT.COM, for 
instance, interrogates the physical lay- 
out of the disk and interprets it as if 
it were formatted for CP/M. Since PC- 
DOS disks aren't in CP/M format, STAT 
is immediately aborted by the Z80 
engine. WordStar's SpellStar won't 
work, either. It tries to call CP/M's con- 
sole command processor (CCP) with- 
in the 64K-byte CP/M segment. In the 
Emulator, however, there is no CCP in 
the CP/M segment. 

Some CP/M programs look too 
closely at the "reserved" fields of the 
FCB and thus ought not to be emulat- 
able at all. We have added special 
code to the Z80 engine that tries to 
keep the FCB looking as though it was 
being manipulated by CP/M, not PC- 

Moving CP/M Programs to 
the IBM PC 

There are two ways to transfer a CP/M 
program to a PC-DOS file format. The 
first is to use a PC-DOS utility that 
runs on the IBM PC and is capable of 
reading the foreign CP/M disk format. 
1\vo such utilities are Convert (from 
Selfware Inc. Fairfax, Virginia) and 
Xenocopy (from Vertex Systems Inc., 

Table 1: Some CP/M applications that have run successfully under the 

Standard Digital Research Programs: 







Compilers, Assemblers: 







Telecon C 

Software Toolworks C 


WordStar 3.0 and 3.3 and MailMerge (but not SpellStar!) 


PMATE-80 rev. 3.02 

Chang Labs MemoPlan 

LU version 3.00 

Los Angeles, California). This ap- 
proach is nice, but only certain disk 
formats are recognized by each of 
these utilities. Apple II CP/M and 
North Star Horizon CP/M disks, for ex- 
ample, cannot be read on the IBM PC 
without special hardware. 

Another approach is to transfer the 
CP/M files to the IBM PC via a com- 
munications line. If you have a CP/M 
system and an IBM PC, you can direct- 
ly connect the two machines' serial 
ports and transfer files at 9600 baud. 
Otherwise, you can make the transfer 
over the phone at whatever speeds 
the respective modems can handle. In 
either case, the CP/M system (running 
BYE and XMODEM/MODEM7) sends 
its files to the IBM PC. which may be 
running any of the public domain 
communications programs that sup- 
port the XMODEM protocol. The ma- 
jor advantage of this approach is that 
you don't need to know the disk for- 
mat. If the CP/M system can read its 
own disks, the files can be transferred 
to the IBM PC. This works well when 
transferring Apple II CP/M and North 
Star Horizon CP/M files. 

CP/M and PC-DOS files are similar 
enough that we have never had to 
alter a file that was transferred using 
the second approach (XMODEM), but 
Convert and Xenocopy don't always 
create a PC-DOS file of the same size 
as the CP/M original. 

The biggest problem is remember- 
ing which files are PC-DOS files and 
which are CP/M files. If you transfer 
a CP/M file called DUMP.COM, for ex- 
ample, from a CP/M system to the IBM 
PC's disk and accidentally invoke 
DUMP.COM from PC-DOS, the IBM 
PC's 8088 will attempt to execute the 
Z80 op codes and it will be time to 
reach for that Big Red Switch on the 
side of your PC. You must run such 
CP/M command (.COM) files under the 

One way to keep things straight is 
to store CP/M files under separate PC- 
DOS directories. The Z80PATH en- 
vironment string makes this parti- 
cularly convenient. 

The Emulator Environment 

The Z80PATH environment string is 
equivalent to the PC-DOS PATH com- 


204 BYTE- OCTOBER 1986 


Graphic Systems wins 

World Class competition 

three years running. 

Sharp resolution, full compatibility, and rug- 
ged reliability. That's what you get in every 
Princeton Graphic Systems monitor. That's 
why Princeton Graphic Systems is number 
one in the minds of more and more personal 
computer owners every year. 

Only Princeton Graphic Systems offers a 
complete family of quality personal computer 

displays. Our color and monochrome monitors 
outperform the competition every time. That's 
why, for the third year in a row, our HX-12 high 
resolution color monitor has been voted best 
in the world.* 

So f orthe very best in personal computer 
monitors, pick the company that's number 
one. Princeton Graphic Systems. 

*PC WORLD Magazine's 1986 World Class Survey. 






601 Ewing Street, Bldg. A, Princeton, NJ 08540, (609) 683-1660, Telex: 821402 PGSPRIN, (800)221-1490, ext. 1704 

Inquiry 240 

OCTOBER 1 986 • BYTE 205 


mand. It allows you to tell the 
Emulator where to look for Z80 .COM 
files. You give it a string that is a list 
of fully qualified names of directories 
that are to be searched when the 
Emulator is looking for a .COM file to 
load and run. If there is no Z80PATH 
string defined in the PC-DOS environ- 
ment, the search stops with the cur- 
rent disk drive's current PC-DOS direc- 
tory. If no matching filename is found, 
the Emulator indicates that it doesn't 
know what you mean with the same 
terse error indication that CP/M 


For the most part, all you do while 
using the Emulator as a standard 
CP/M system is invoke various CP/M 
programs. The Emulator prompts you 
for input the same way that CP/M 
does— by displaying the currently 
logged drive with the string Z80 in 
front of the drive name, to remind you 
that you are using the Z80 and CP/M 
Emulator and not PC-DOS. 

The Emulator includes CP/M's usual 
built-in commands, although the out- 
put display may vary because this 
really is a PC-DOS file system. An ef- 
fort has been made to accept both 
CP/M and PC-DOS versions of the 
same command: 

Z80 A>dir 
Z80 A>stat \* 
Z80 A >type foo.txt 
Z80 A>era b:*.* 
Z80 A > delete *.foo 

You can also add a few PC-DOS op- 
tions, since these commands are ac- 

tually passed to PC-DOS for handling: 

Z80 A>dir /w 

Z80 A>dir >foo 

Z80 A>dir b:\cpnn\*.* 

Z80 A > rename *,c *.bak 

Z80 A>copy foo.doc Iptl: 

If a command starts with an exclama- 
tion point, the rest of the command 
line is passed to PC-DOS for handling. 
This is for PC-DOS commands that 
have no CP/M equivalent. You can use 
it to change working directories, in- 
voke your favorite PC editor, or even 
"drop into" PC-DOS for a while. You 
do this by invoking COMMAND.COM 
and returning to the Emulator via the 
EXIT PC-DOS command. 

Z80 A>!mkdir too 

Z80 A>!cd too 

Z80 A>!cd \cpm\test 

Z80 A>!chkdsk 

Z80 A>!ws 

Z80 A>!format b:/s 

Z80 A>!command 

A > (you're in DOS now) 

A>WS (invoke WordStar) 


Z80 A> (back in the Emulator now) 

Advanced Features 

There's far more to the Emulator than 
the simple CP/M environment. A host 
of special built-in commands gives the 
Emulator power beyond CP/M's. 
Some of the miscellaneous Emulator 
commands are shown in table 2. 

Some of these built-in commands 
control the Emulator environment. To 
tell the Emulator that you want illegal 
Z80 op codes to cause a visible fault 

Table 2: 

A sampling of the commands available under the Emulator. 






Delete file(s) 



Delete file(s) 



Display file(s) in directory 



Type contents of file to screen 



Copy file(s) 



Rename file(s) 



Get on-line help 



Control Z80 illegal op codes 



Exit the Emulator to PC-DOS 


speed 9 

Calculate effective Z80 speed 



Cold-boot the 64K-byte CP/M segment 



Switch input to file 

with a proper error message, for ex- 
ample, you use the illop built-in 

Z80 A> illop fault 

To tell the Emulator to not fault on il- 
legal Z80 op codes but to treat them 
as NOPs, you say: 

Z80 A > illop nop 

The Emulator's debug facility is built 
into the Emulator, which means that 
debug commands are always avail- 
able when using the Emulator. Tkble 
3 shows some of the debug com- 

Disassembly and RESOURCE 

RESOURCE is short for "regenerating 
source code." Ward Christensen wrote 
the original RESOURCE many years 
ago for CP/M. The basic idea is to 
automate the disassembly of object 
code into source code, complete with 
labels and comments. 

If you simply disassemble a piece 
of Z80 object code, you get a primi- 
tive type of source code. There are in- 
struction mnemonics, so you can at 
least tell what instructions are in- 
volved. But addresses are just hexa- 
decimal numbers. 

You can explain to the Emulator's 
disassembler as much as you know 
about some object code. It will use 
this information in subsequent dis- 
assemblies, resulting in much more 
understandable displays. The first 
thing that you usually want to see are 
symbolic labels instead of hexadeci- 
mal addresses. The label directive 
(abbreviated as =) enables you to 
assign symbolic names to Z80 ad- 

Z80 A > label 5c first fcb 

Z80 A > label 6c second_fcb 
Z80 A>= 5 BDOS 

Now an instruction sequence like 

0253 LD DE,005Ch 
0256 CALL 0005H 

will disassemble as 

0253 LD DE,first fcb 


The next most useful thing to do is 


206 BYTE* OCTOBER 1986 




Print Master from BayTech is 
an intelligent printer controller 
that connects between your 
computers and printers. It allows 
you to share one printer 
automatically, contend for 
multiple printers automatically, 
or switch between several printers 
by sending a simple code, not 
by changing cables. Plus, Print 
Master's generous built-in buffer 
spools data until your printers 
can receive it. 

Because Print Master is a very 
flexible device, you can set it up 
to fit your application, even if 
your application changes. 


You configure Print Master's 
ports for any combination of 
printers and computers by 
answering questions from easy-to- 
follow menus. For example, 
with the ten port Print Master, 
nine computers can share one 
printer, eight computers can 
share two printers, seven 
computers can share three 
printers, and so on, to one 
computer which can share nine 
printers. You can also menu-select 
the disconnect time-out, form 
feeds, etc. and on serial models, 
the configuration of individual 
ports to translate for printers 
and computers using 
different configurations. 




Since Print Master can accept 
data faster than your printer (up 
to 19.2KB serial or 5,000 
characters per second parallel), 
you can send a print job to 
Print Master's standard 512K 
buffer and then go on to another 
project. All users connected to 
Print Master can send data to 
this common pool buffer, and 
they can be doing it 
simultaneously, even if no 
printer is available. Data is 
stored in the buffer 
until it can 

be sent on a first-job-in first-job- 
out basis to the selected printer. 
If you need more memory than 
512K, Print Master is optionally 
available with one megabyte 

If several users are sharing 
one printer, printer sharing via 
Print Master is completely 
automatic. There are no codes 
to send. You simply perform 
your normal print operation. If 
you are sharing several identical 
printers, connection 
is also 


application using 
the Model 710C 

automatic. Again, you perform 
your normal print operation and 
are connected to the next 
available printer on a first-come- 
first-serve basis. Print Master 
will send data to all printers 
simultaneously to keep your 
printers running at full capacity. 

If you are sharing several 
different printers, such as a 
laser-jet, a dot matrix and a 
plotter, and you wish to select a 
specific printer, you do your 
normal print routine and also 
send a printer select code (which 
you can define yourself) before 
the first characters of your data. 
The data is then routed to the 
selected printer. It's that easy. 

RS-232C OR 

706 A (6 parallel ports), $795 
706C (6 serial ports), $795 
708C (8 serial ports), $895 
7 IOC (10 serial ports), $995 
706D (4 parallel/2 serial), $795 
708D (6 parallel/2 serial), $895 
706E (4 serial/2 parallel), $795 
708E (6 serial/2 parallel), $895 
710E (8 serial/2 parallel), $995 
708F (4 serial/4 parallel), $895 
710F (6 serial/4 parallel), $995 
All above models have standard 
5 12K buffers. 

Additional 500K buffer, $249 
RS422A for distances up to 
4,000 feet now available on 
some models. 


Call or write BayTech at P.O. 
Box 387, Highway 603, Bay 
Saint Louis, Mississippi 39520, 
USA. Telex 910-333-1618. 
Phone 601-467-8231 or 


Bay Technical Associates, inc. 


Inquiry 37 


assign comments to certain ad- 
dresses. This is done with the built-in 
command comment (abbreviated ";"): 

Z80 A >comment 253 "Point to FCB" 
Z80 A>; 256 "open the file" 

Our example sequence (when disas- 
sembled) then looks like: 

0253 LD DE.first fcb ; Point to FCB 

0256 CALL BDOS ;open the file 

One common problem in obtaining a 
sensible disassembly of object code 
is that of embedded data being mis- 
interpreted as instructions. You can 
use the control command (ab- 
breviated c) to control whether the 
disassembler interprets object code 
as data or instructions. Several types 
of these "control breaks" can be as- 
sociated with an address: 

Instructions— Z80 instruction 

mnemonics are used. 
Bytes— DBs are used. 
Words— DWs are used (multiple DWs 

per line). 
Table— DWs are used (one per line). 
Storage— DS is used. 

For example: 

Z80 A>control 253 instructions 

Z80 A>c first fcb bytes 

Z80 A >c bios_table table 
Z80 A>c 80 storage 

Finally there is the disassembly 
command itself— list (abbreviated I). 
You use this to list whatever object ad- 
dresses you like. As the code is listed, 

it is disassembled according to what- 
ever you've explained about the code. 


Many of the built-in commands ac- 
cept arguments. In general these 
arguments can be numbers (in hexa- 
decimal, decimal or binary). ASCII 
characters, or symbolic labels that 
have been assigned via the label com- 
mand. Additionally, they can be ex- 
pressions made up of two or more 
such values joined by 'V or ,l -" 
operators. This can make things con- 
siderably easier for the poor befud- 
dled user when it's three a.m. and he's 
hot on the trail of a bug. Instead of 
having to disassemble a piece of code 
with something cryptic like 

Z80 A > dump 5c 6b 
Z80 A > list 700 740 

he can type 

Z80 A>dump first fcb 

f i rst fcb + fcb size 

Z80 A > list table_start+'A 


Emulator Internals 

When you type in the name of a CP/M 
program, the Emulator searches for 
the corresponding .COM file accord- 
ing to the Z80PATH PC-DOS environ- 
ment string. When the program is 
located, it is read into the 64K-byte 
CP/M memory segment starting at ad- 
dress 0100. The default FCBs at 00 5C 
and 006C are formatted from the 

Table 3: 

Debug commands built into the Emulator. 






Save memory (starting at 0100 hexadecimal) to disk 



BDOS trace control or display 



Set, clear, or display breakpoints 



Dump memory in hexadecimal and ASCII 



Locate pattern in memory 



Continue execution of Z80 



Patch memory 



Display/modify Z80 registers 



Trace Z80 instructions 



Invisibly trace Z80 instructions 



Display traceback of Z80 PC values 



Move memory 



Evaluate expression 



Set default FCBs at 005C and 006C hexadecimal 



Read file into memory 



Write memory to file 

command arguments, as is the com- 
mand tail at 0080. The Z80 stack is set 
just below our BDOS hook at address 
FEFE, and a word of zeros is pushed 
onto the stack so that if the CP/M pro- 
gram exits by a return, it will go to ad- 
dress 0000, which is a jump to the 
Warm Start entry in the BIOS table. 
Once Z80 code is loaded into the 
64K-byte CP/M memory, the guts of 
the Emulator— the Z80 engine— takes 
over. It fetches op codes from the 
CP/M memory and "executes" them 
by emulating what the Z80 would do 
with them. 

Z80 and 8088 Register 


For speed, the Z80 engine keeps in 
8088 registers emulated copies of the 
most-used Z80 registers, as follows: 

Z80 Registers 

A register 
B register 
C register 
D register 
E register 
H register 
L register 
Stack pointer 

8088 Registers 


The DI and ES registers are available 
for temporary use by the Z80 engine. 
All emulation of Z80 op codes is per- 
formed either by manipulating emu- 
lated Z80 registers that reside in 8088 
registers or by using DI and ES to ac- 
cess and manipulate RAM. Seldom- 
used Z80 registers are kept in RAM 
within the Z80 engine. Because these 
are in RAM and not in 8088 registers, 
it takes longer to access them. For- 
tunately, these particular Z80 registers 
are not used very often. They are 

• the alternate registers AF, BC DE' 
and HC 

• index registers IX and IY 

• the interrupt flip-flops IFFl and IFF2 

• the interrupt mode flip-flop IMF 

• the interrupt register 

• the refresh register 

While the Z80 engine is in control, 
the 8088 DS register points to the 
64K-byte CP/M memory segment. The 
8088 stack registers SS and SP are not 


208 BYTE • OCTOBER 1986 

Casio challenges you 
to find more power. At any price. 

The amazing Casio FX-4000P pro 
grammable scientific calculator. In 
power, it's compa- 
rable to the most 
highly touted calcu- 
lators on the market 

It offers you 
160 total functions, including 83 scien- 
tific functions, such as hexadecimal/ 
decimal/binary/octal conversions, 
standard deviation and regression 

Making it easier to deal with 
long computations, its 12 character 












12 Scrolls to79 

7 + 2 

10 + 2 


550 Step 

448 Step 

84 Step 

Formufa Replay 




Computer Math 




alpha-numeric display scrolls to 79 
characters and its instant formula 
replay feature lets 
you review, edit and 
replay your formula 
at the touch of a 
button. It even has 
an answer key that 
stores your last computed value. 

And to make things still easier, 
the FX-4000P has a "perfect entry" 
system, which allows you to enter and 
display a formula exactly as written. 
Plus, it has a non-volatile 550 
step program memory with 10 program 

divisions. This allows 10 different pro- 
grams to be stored at once. 

And it includes up to 94 data 
memories, which are invaluable for 
statistical analysis. 

Finding all this power at your 
fingertips is remarkable enough, let 
alone at half the price of some com- 
petitors. If you can put your finger 
on a scientific calculator that gives 
you more power at any price, by all 
means buy it. 

Where miracles never cease 

Casio, Inc. Consumer Products Division: 15 Gardner Road, Fairfield, NJ 07006 New Jersey (201) 882-1493, Los Angeles (213) 803-3411 
Inquiry 57 OCTOBER 1986 'BYTE 



It is not enough to use 
the 8088's LAHF and 
SAHF instructions to 
emulate the Z80 flags. 

altered and are used to maintain 
linkage with the calling C program. 

Z80 Op Code Fetch 
and Emulation 

The Z80 engine works as follows: 

1. Fetches a Z80 op code from the 
64K-byte CP/M memory segment. 

2. Jumps to the code to emulate this 
op code. 

3. Updates the emulated Z80 flags per 
this op code. 

4. Goes back to step I . 

The 8088 SI register emulates the 
Z80 program counter. To execute the 
next Z80 instruction, the byte that the 
SI register points to is read from 
memory. It is then used to index into 
a table of 2 56 possible op codes, and 
the routine to handle this particular 
op code is jumped to (not called, as 
that is just too slow). 

Each of the 2 56 primary Z80 op 
codes has a 16-byte 8088 routine that 
emulates it. Fixing the size of each 
handler at 16 bytes eliminates the 
need to use a real table to look up the 
address of the op code's emulation 
routine and speeds things up con- 
siderably. Some op codes just can't be 

fully emulated in 16 bytes. The 
16-byte handlers for these few excep- 
tions are simply jumps to larger rou- 
tines elsewhere within the Z80 engine. 
Most Z80 op codes, however, can be 
handled in 16 bytes— assuming some 
very careful coding of the routines. 

The main dispatch code is shown in 
figure I. Notice that the label 
INTERP_TRAP is normally a NOP. If 
you press Break on the IBM keyboard, 
the Break interrupt handler (part of 
the Z80 engine) changes the NOP to 
a single-byte 8088 breakpoint inter- 
rupt (INT 3). When execution gets 
back to INTERP_TRAR the break- 
point interrupt in turn causes Z80 
emulation to halt, with a return from 
the Z80 engine to the main C part of 
the Emulator. This is how to interrupt 
the Z80 between Z80 instructions. 

The 16-byte handler that is jumped 
to via the above dispatch code does 
whatever is necessary to emulate its 
Z80 op code. This includes adjusting 
the Z80 program counter (held in the 
8088 SI register). The Z80 NOP op 
code handler, for example, increments 
the Z80 PC by 1 . A Z80 CALL op code 
causes the Z80 PC to be set to the 
value of the called address. 

When emulating an op code, the 
Z80 flags must be emulated identical- 
ly to the way a real, hardware Z80 
would. It is not enough to use the 
8088 LAHF and SAHF instructions. 
Once the 16-byte interrupt handler 
has finished executing its assigned op 
code, it jumps back to one of eight dif- 
ferent flag-updating routines, each of 
which updates the Z80 flags in what- 





















Figure I : The main dispatch code for the Emulator's Z80 engine. 

ever manner the true Z80 op code 
would have done. Each of the eight 
flag-updating routines ends with a 
jump back to INTERP_TRAR thus 
completing the Z80 emulation loop. 


If a Z80 HALT op code occurs in the 
CP/M memory segment below ad- 
dress FEFE, the Z80 engine saves all 
emulated Z80 register values and 
returns to the main C program. Such 
a HALT can be used as a debug 
breakpoint, or it may be a bug in the 
program. If the HALT occurs at an ad- 
dress above FEFD. some CP/M func- 
tion is being requested by the ex- 
ecuting Z80 program. To understand 
why and how, it is necessary to back- 
track a moment. 

When the Z80 engine first formats 
the 64K-byte CP/M segment, it zeros 
most of that memory. The first page, 
however, is formatted the same way 
that CP/M would format it. At location 
0000 there is a jump to the CP/M 
BIOS Warm Start entry, which is itself 
just a jump within the BIOS vector 
table. This is the same BIOS organi- 
zation that CP/M uses. Unlike CP/M, 
however, each BIOS vector table en- 
try in Z80MU's CP/M memory does 
nothing but jump to a specific HALT 
higher up in memory. The address of 
the HALT tells the Z80 engine that the 
BIOS vector table entry was called. 

At location 0005 is placed a jump 
to the BDOS function handler, which 
is just a HALT at address FEFE. So a 
HALT at this address means that the 
Z80 program is requesting a CP/M 
BDOS function. The Z80 engine looks 
at the address of the HALT, deter- 
mines which CP/M function is being 
called, and emulates that function. 

Emulating CP/M BIOS and 
BDOS Functions 

A common misconception is that 
since PC-DOS was derived from CP/M, 
all you have to do to convert CP/M 
functions to PC-DOS functions is 
move the Z80 C register to the 8088 
AH register, move a few other regis- 
ters around, and call PC-DOS via INT 
21H. In reality it's not that simple. 
First, let's review the various CP/M 
functions a Z80 program can call. 


210 B YTE • OCTOBER 1986 


Program Review: 

Makes dBASE Easier to Program, 
Reduces Logic Errors, Bugs 

TranSec d ANALYST™ automatically 
converts any dBASE III program to 
dBASE III PLUS with true record and 
file locking for multi-user operation. 
Features include syntax/blocking 
analysis, tabbed file output, variable 
cross reference. Framework-type inter- 
face command windows, pop-up menus, 
graphic analysis REPORTS menu. 
Saves programmer's time to analyze and 
debug dBASEII, III, orPLUS. Supports 
multi-user Clipper and network ver- 
sion of WordTech. Not copy protected. 
Rated a "best buy/' 

TranSec dANALYST" $74.95 plus $5 s/h 

TO ORDER: 1-800-423-0772 VISA/MC 

IN FL: 1-305-474-7548 

Program Review: 

Simplify Naming, Finding Your 
Files with 32-Character File Names 

TranSec PCEasy™ is a new easyto-use 
"of f ice environment" file management 
system that allows anyone to easily 
organize large amounts of data on a 
hard disk. Expands DOS file name limit 
to 32 characters to name files naturally, 
the way you think. Use easily re- 
memberedplainwordsornumbers. The 
interface structure mimics the paper 
world, only it's faster, better and easier 
to use ... by programmers, managers, 
secretaries, clerks. PCEasy immediate- 
ly finds file cabinets, file drawers, file 
folders, spread sheets, reports in their 
own logical location. Automatic menu 
access to application programs. Works 
with all popular applications and utili- 
ties. Not copy protected. Rated"**** 
for ease of use." 

TranSec PCEasy™ $74.95 plus $5 s/h 

TO ORDER: 1-800-423-0772 VISA/MC 

IN FL: 1-305-474-7548 

UNLOCK Removes 
Copy Protection 


UN lock "copying" disk allows you to 
make "unprotected" DOS copies of 
popular original program disks. Unpro- 
tected backup copies perform per- 
fectly, as do copies of these copies. 
UNIock copies run on any hard disk, 
including Bernoulli Boxes. No original 

required in drive "A." Run on a RAM 
disk simply and conveniently. Also, 
copy DOS 5 1 /i" programs to ZVz r 
diskettes. For IBM® PC, XT, AT, com- 
patibles, 256K or more, DOS 2.1 or 
higher. Choice of the critics! 

Guaranteed to work only with programs below: 



(Plus $4 ship/handling. Foreign orders $10) 


• LOTUS 1-2-3™ (1.A-2.0) 







• FASTBACK™(5.3) 

• GRAPH WRITER™ (4.3, 4.3i) 


• RE ALIA COBOL™ (1.2, 2.0) 

• THINKTANK™(2.o,2.i) 

• MULTILINK ADVANCED™ (3.02, 3.03) 

• DOLLARS & SENSE™ (2.0) 



(Plus $4 ship/handling. Foreign orders $10) 

• SYMPHONY™ (1.1) 


• LOTUS 1-2-3 REPORT WRITER™ (i.o) 


• SmARTWORK™ (1.0 Rev. 8 thru 10 & 1.1) 


• MANAGING YOUR MONEY™ (1.5,1.51,2.0) 

• MICROSOFT WORD™ (1.15,2.0,2.01) 

• PFS:ACCESS™0934Ed.) 

• PFS: PLAN™ (B) 

• PFS: GRAPH™ (B) 

• PFS: WRITE™ (1.01, C) 


• PFS: FILE™(B,C) 



"Best of UNLOCK" 

ALBUM D' PLUS (Plus $4 ship/handling. Foreign orders $10) 





• FASTBACK™ (5.3) 



• DOLLARS & SENSE™ (2.0) 

• LOTUS 1-2-3™ (1.A-2.0) 

• SYMPHONY™ (1.1) 

• LOTUS 1-2-3 REPORT WRITER™ <i.o) 



• MANAGING YOUR MONEY™ (1.5,1.51,2.0) 

• THINKTANK™ (2.0, 2.1) 

• MICROSOFT WORD™ (115. 2.0, 2.01) 



(Plus $4 ship/handling. Foreign orders $10) 



^ "UNIock has two particularly en- 
iVTiilirlliaa dearing characteristics: it works, 
and works simply. I was able to quickly 
produce unprotected copies of Lotus 1-2-3 
release 2, Symphony 1.1, Microsoft Word 2.0, 
dBase III 1.1, and Framework II. These copies 
performed flawlessly, as did copies of these 
copies." Christopher O'Malley, 


PYJC "UNIock 4.7 defeats the latest Pro- 
D I I C lok and SuperLock type of copy 
protection scheme. It's menu-driven and works 
fine on the programs it's supposed to work on: 
Lotus 1-2-3, d Base III, Framework, Symphony, 
Paradox, and several others." 

Jerry Pournelle, BYTE, Feb. *86 

Jh "Because copy protection can interfere 
■' - with the ability to back up a hard disk, 

business-oriented users may prefer programs 

like TranSec's UNIock series." 

Winn L. Rosch, PC MAGAZINE, May 27, 1986 





The Best Software Utilities Far Under S100 



IN FLORIDA: 1-305-474-7548 


TranSec Systems, Inc., 1802 North University Drive, Plantation, FL 33322 

Trademarks are the sole property of their respective owners. UNIock is for use only to improve the useablltty of legally acquired and 
operated software. 


The basic BIOS calls generally do 
low-level I/O to various devices. The 
Z80 calling sequences here have no 
direct PC-DOS equivalents. What's 
worse, many of them deal with the 
disk drive in a way that is incompati- 
ble with PC-DOS disks. In Z80MU's 
Z80 engine, the disk BIOS calls are un- 
supported and cause an abort of the 
Z80 program that invokes them. Any 
CP/M program that uses the disk BIOS 

calls just won't make sense on the PC. 
Rather than be sneaky about this, the 
Emulator displays an obvious error 
message explaining that the Z80 pro- 
gram invoked an unsupported BIOS 
call and has been aborted. 

The low-level nondisk BIOS calls, on 
the other hand, are turned into IBM 
PC ROM BIOS calls that correspond 
in meaning. The CP/M "return LIST 
status" BIOS call, for example, gets 

We Beat 
The Systems. 

Display Telecommunications Corporation was named Best 
Small Business Exporter in Texas for 1986 because we offer the 
best IBM® PC clone available. We offer state-of-the-art 
components and our service reps are always accessible to 
answer your questions. Beat the systems with DTC 


The Industry Standard 


80286 CPU 


Token-Passing Ring LAN • IBM 
NETBIOS Compatiibe 


4 Computers In— 2 Printers 
Out • Automatically routes 
Computer to Printer • Inter- 
nal Buffering 64K or 256 K 



Motherboard 256K • Case • 
130W Power Supply* (2) tt 
Height Floppy Disk Drives 
with Controller • Keyboard 


Same as Mega-Kit but with- 
out floppy Disk or Controller 

XT Bare Board 


XT Assembled 256K 299.95 

Power Supply 
Switching Buffer 







Flip Top (requires a power 
supply with a switch in the 

BIOS licensing. 

FCC Class A Approval. 

IBM is a registered trademark of 
International Business Machines 


130 Watt* Rear Power 

Display Telecommunications Corporation 

8445 Freeport Parkway • Suite 445 • Irving, TX 75063 

1-800-227-8383 • For Technical Calls Only: 1-214-929-1382 

TELEX 51 060001 76 DTC UD 

translated into an IBM PC ROM BIOS 
INT 1 7 H to check the status of LPTI :. 
The status returned by the INT I7H 
is translated into the format of a real 
CP/M BIOS routine and given to the 
Z80 program. The "write character to 
PUNCH" BIOS call is translated into 
an IBM PC ROM BIOS INT 14 H call to 
output the character to COM1:. The 
other nondisk BIOS calls are handled 

Then there are the vanilla BDOS 
calls. These are used when a function 
number is placed into the Z80 C reg- 
ister and then a CALL 5 executed to 
get CP/M to perform that function. 
Such BDOS functions fall into three 
general groups: (1) character I/O to the 
terminal, the printer, etc., (2) disk file 
I/O. and (3) overhead (get/set IOBYTE. 
get allocation information, etc.). 

The functions of group I are easily 
converted to their PC-DOS equiva- 
lents just by exchanging a few Z80 and 
8088 registers. The functions in group 
3 are generally irrelevant in the PC- 
DOS world. The functions in group 2, 
however, are the guts of a real CP/M 
emulator. They must be done ab- 
solutely accurately. This is where we 
spent most of our development time, 
at least as far as the Z80 engine is 

Results Returned by CP/M 

The first problem faced by a CP/M 
emulator is one of conventions. How 
is information provided to CP/M and 
returned by it to the Z80 program? 

The first part, fortunately, has been 
clearly defined by years of software 
development for CP/M. A function 
number goes into the Z80 C register, 
an FCB (if used) is pointed to by the 
Z80 DE register, and so on. But results 
coming back from CP/M (like "Hey, I 
opened your file, OK?") come back in 
at least two places: in the Z80 A reg- 
ister and in the Z80 HL register. 

When we tried to run LU version 
3.00 (a popular CP/M utility) under 
early versions of the Emulator, we got 
garbage. A quick debug session 
determined that when LU checked the 
results of a BDOS function it ignored 
the A register, looking instead at the 
Z80 HL register. A check of every 
CP/M system we could get our hands 


212 B YTE • OCTOBER 1986 

Inquiry 97 


a true 



General Technologies, an 
affiliate of one of America's 
leading electronic parts 
manufacturers and 
distributors, has designed 
three outstanding personal 
computers with full IBM® 


A fast, powerful, 
dual-speed (8/6 MHZ) 
computer with an 80286 
CPU. Perfect as a file server. 

speed PC. Zero wait state. 70% 
faster than a standard PC/XT®. 
Rated by Norton Utility. 

■ GENERAL PC: The perfect inexpensive personal 
computer for your home and off ice. 









Get more computer for a lot less money by calling 

toll-free 1-800-426-1 242 for our professional dealer 

nearest you. Snap to it and snap up a real value with 


IBM, AT and PC/XT are registered trademarks of International Business Machines Corporation. 

'■ >'f 



Technologies, Inc. 

Bloomf ield, New Jersey 07003 

Twx: 710-994-4780- Fax: 201-429-8683 



Inquiry II 7 



The way PC-DOS uses 
and updates an FCB 
varies from the way 
CP/M does it 

on revealed that they all did the same 
thing. They returned results in two 
places (the Z80 A register and the HL 
pair), and the Z80 program could 
check whichever it pleased. So we 
changed Z80MU's Z80 engine to 
return results in both places, and now 
LU works just fine under the Emulator. 

Differing Use of the FCB 

The biggest trap lies in emulating 
CP/M's use of the FCB. The way PC- 
DOS uses and updates an FCB varies 
considerably from the way that CP/M 
does it. This is further confused by the 
fict that various versions of PC-DOS 
handle the FCB differently. 

Never minding that CP/M keeps al- 
location groups in "reserved" fields of 
the FCB and that there's no reason in 
the world to emulate that behavior, 
there are still important differences in 
the use of those FCB fields that the 
Z80 program is "allowed" to access. 

When CP/M opens a file, for exam- 
ple, it uses byte 1 2 of the FCB— the ex- 
tent field. In the early releases of 
CP/M (before random I/O was officially 
added to it), programs like WordStar's 
install program used this byte to do 
random I/O, by opening various ex- 
tents within a given file. PC-DOS ig- 
nores byte 12 (and in some versions 
zeroes it) when opening the file but 
uses it thereafter. So the Z80 engine's 
emulated CP/M "open file" function 
saves byte 1 2 across the PC-DOS call 
to open a file and restores it after PC- 
DOS is done modifying the various 
fields that it modifies when a file is 

FCB byte 13 is a reserved field in 
CP/M, but it is the low-order byte of 
the current block number in PC-DOS. 
The Z80 engine zeroes this field 
before giving the FCB to PC-DOS. 

FCB byte 1 4 is also a reserved field, 
and while byte 1 5 (the "record count 
within this extent" field) is not clearly 

marked reserved, it ought not to be 
looked at by well-behaved CP/M pro- 
grams. But both of these bytes are 
looked at (against all CP/M rules of 
proper software development) by 
some CP/M code written by Microsoft. 
We received calls from users of the 
Emulator who were having trouble 
running some CP/M software that had 
been written in a certain Microsoft 
compiled language. We debugged the 
code and found that the Microsoft 
subroutine library was looking at FCB 
bytes 14 and 15 instead of checking 
the CP/M return value in the Z80 A 
register. Rather than patch Microsoft's 
code to work properly, we changed 
the Z80 engine to keep FCB bytes 14 
and 1 5 current according to the way 
CP/M would update them. This can be 
tricky, as PC-DOS uses FCB bytes 14 
and I 5 as the logical record size. 

PC-DOS version 2.0 introduced ex- 
tended FCBs. If the byte at FCB-7 is 
00FF hexadecimal, PC-DOS assumes 
that this is an extended FCB and uses 
FCB-1 as an attribute byte. CP/M FCBs, 
of course, don't use this questionable 
convention. So when a Z80 program 
calls CP/M to do some operation on 
a file, the Z80 engine makes sure that 
the CP/M FCB doesn't sit 7 bytes after 
a byte that just happens to be 00FF 

CP/M FCBs are 36 bytes long; PC- 
DOS's basic FCB is 37 bytes long. 
Unless something is done by the Z80 
engine to address this situation, PC- 
DOS will blindly use whatever byte 
happens to follow the 36-byte CP/M 
FCB as part of the random record 

For these and other reasons, the 
Z80 engine copies each CP/M FCB up 
to a safe spot in high memory and 
touches it up before calling PC-DOS 
to do something with it. When PC- 
DOS is done, the modified FCB is 
edited to look once again like a CP/M 
FCB and is copied back where it 
originally came from so the Z80 pro- 
gram can examine it as if it were a 
plain old CP/M FCB. 

Different File I/O Error 
Return Values 

Some CP/M programs don't really ex- 
amine status returns from CP/M file 
operations except to check for zero 

or nonzero. Others actually do check 
for specific CP/M error returns as 

01 = reading unwritten data 

03 = cannot close current extent 

04 = seek to unwritten extent 

05 = cannot create new extent 

06 = seek past physical end of disk 

PC-DOS file operations return com- 
pletely different error values. So the 
Z80 engine translates an error re- 
turned by PC-DOS into the corre- 
sponding CP/M error value before 
passing it back to the Z80 program. 

Handling EOF 

Many CP/M programs check for 
Control-Z (end of file) on sequential 
input files. PC-DOS, of course, doesn't 
need a Control-Z at the end of a se- 
quential file. It knows the exact size 
of the file, regardless of file contents. 

So if a CP/M program (which ex- 
pects Control-Z for end of file) reads 
a PC-DOS sequential file that doesn't 
have a Control-Z, the results can be 
rather odd. Some CP/M programs will 
report an I/O error. Others blindly 
assume that end of file was reached 
when any read error occurs. 

For this reason, the Z80 engine 
keeps a sharp eye out for the PC-DOS 
"end of file" or "partial record" error 
returns. If either is found, the Z80 
engine returns to the Z80 program a 
buffer that is filled out with Control-Z 
characters. So things work out just 
fine, regardless of the presence or 
absence of Control-Z characters in the 
input file. 

CP/M BDOS Functions That 
Differ in PC-DOS 

The CP/M "search for next" BDOS 
function does not require an input 
argument. The search continues per 
data saved from the last search that 
was done (usually a "search for first" 
that provided an FCB). The PC-DOS 
"search for next" function, however, 
does require an FCB as input. So 
when the Z80 engine emulates a CP/M 
"search for next" BDOS function, it 
passes to PC-DOS the updated FCB 
that was used for the previous search. 
The FCB is kept in a special area re- 
served just for this purpose. 


214 BYTE • OCTOBER 1986 





Now you can move data between different programs quickly and easily using 
SOFTSTRIP data strips. 

MOVE LOTUS 1-2-3- 

To and From Excel 
To ReadySetGo 

To and From Apple Writer 
To PageMaker 

And, using Softstrip data strips you can move data between programs such 
as WordStar, d BASE, Framework, MacWrite, ReadySetGo and many others. 

We've created a series of several dozen Application Notes on Softstrip data 
strips. These lead you through simple steps to make the file transfer as easy 
as possible. 


A physical rehabilitation and pain management clinic in 
Hot Springs, Ark., has begun a trial program using the 
SOFTSTRIP System to reduce the huge volumes of 
medical paperwork in physician's offices, clinics and 
hospitals. Dr. Henrik Madsen, medical director and 
administrator of the HotSpringsclinic, is deeply involved 
in the management aspects of health care as well as 
medicine itself. One of the biggest problems facing the 
proper administration of medical offices, clinics and 
hospitals is paper. Voluminous patient records accumulate 
rapidly, soon cramming all available shelf space. All of those records are hand or 
typewritten papers. 

Using the Softstrip System, Dr. Madsen's clinic is recording patient records on data 
strips. Those strips are filed in place of the written medical records, significantly reducing 
the amount of shelf space needed, as well as handling times. In addition, recall of 
medical records to the clinic's IBM PC computer can be done quickly using data strips. 
As Dr. Madsen observed: "Cost reduction is a vital national concern. If it can be 
accomplished in the administrative area, that many more dollars will flow to direct 
patient care. Everyone is looking for effective means to reduced administrative costs. 
This is one with promise." 

For a complete list of Application Notessee yourlocaldealeror call 1-800-533-7323 for the name 
of the nearest dealer. In Connecticut call (203) 573-0150. 

Users' Groups: Call for Special User Group deals. 

All you need is STRIPPER software at $19.95 and the Softstrip System Reader at $199.95. 


:vj- ;■•'■■•■ ;'':ni 

km, i 



835 South Main Street 
Waterbury, CT 06706 

For Europe & Asia Contact: 
Softstrip International, Ltd. 

53 Bedford Square 

London, WC1 B3DP England 

01-631-3775 Telex: 263874SOFTST G 

ReadySetGo is a trademark of Manhattan Graphics Corporation. 

IBM Is a registered trademark of International Business Machines Corporation. 

Framework is a trademark and dBASE is a registered trademark of Ashton-Tate. 

PageMaker is a registered trademark of Aldus Corporation. 

Cauzin and Softstrip are registered trademarks and STRIPPER is a trademark of Cauzln Systems Inc. 

WordStar is a registered trademark of MicroPro International Corporation. 

Lotus and 1-2-3 are registered trademarks of Lotus Development Corporation. 

MacWrite, Apple Writer and AppleWorks are trademarks and Apple is a registered trademark of Apple Computer. 

Excel is a product of Microsoft Corporation. 

Dr. Dobbs Journal of Software Tools is published by M&T Publishing, Inc. under license from People's Computer Company. 

Macintosh is a registered trademark of Mcintosh Laboratories licensed to Apple Computer Inc. 

Inquiry 58 

This data strip contains 
IBM2MAC, all the 
software you need to 
move your Lotus spread- 
sheets to Macintosh 
applications such as 
PageMaker. This pro- 
gram runs on an IBM PC 
and converts a Lotus text 
file to Macintosh format. 
Then, just print data strips 
of the converted file and 
read the strips into your 


Let Lab Boss turn 

your IBM PC into a powerful 

instrument controller. 

\ 7ou can spend thousands of dollars 
Y for a dedicated instrument controller. 
dm Or a few hundred for a controller 
that's dedicated to you and your IBM PC. 

Lab Boss™ from National Instru- 
ments puts you and your IBM PC (or 
compatible) firmly in charge of GPIB 
instruments. From sophisticated lab-, 
oratory equipment, like digitizing 
oscilloscopes and spectrometers, 
to standard printers, plotters, 
tape drives and more. 
At data transfer speeds 

that are the highest in the industry. 

And Lab Boss products offer a direct 
data link from your measuring equipment 
to a full range of analysis software, includ- 
ing RS/1, Lotus 1-2-3, and Symphony. So 
you can easily report your findings on 
the same system you used for 

instrument control, data acqui- 
sition and analysis. Try that 
on a dedicated controller! 
So - you want to be the 
boss? Call National Instru- 
ments. 800/531-4742. 




12109 Technology Blvd. 

Austin. TX 78727 512/250-9119 

The CP/M "buffered keyboard in- 
put" BDOS function returns when the 
buffer is full. The corresponding PC- 
DOS function does not: It waits for 
Return to be pressed. So the Z80 
engine simply can't call PC-DOS func- 
tion 10. It must itself emulate the en- 
tire operation of this function, using 
low-level console I/O routines. 


In this overview of Z80MU. the Z80 
and CP/M 2.2 Emulator, my intent has 
been to give a feel for the capabilities 
of the program. More details, includ- 
ing explanations of all built-in com- 
mands, reside in the user's guide that 
is distributed with the Emulator. 

Response to the Emulator has been 
favorable. This reinforces our convic- 
tion that releasing the package to the 
public domain was the right thing to 
do. A few clear-cut bugs have been 
found by users in the field. These have 
been fixed. In addition, some ex- 
cellent suggestions have been made 
as to features to be added. 

Many other details need to be ad- 
dressed by anyone who wishes to 
make such an Emulator. I have mere- 
ly presented some of the most signifi- 
cant ones. Discovering the rest, quite 
frankly, is half the fun. 

The Future 

The Emulator is still in active develop- 
ment. At the moment, we are imple- 
menting the following changes: 

1 . The C part of the Emulator is being 
rewritten in Microsoft C version 3.00. 

2. The user interface is being re- 
directed to fast screen I/O routines, 
bypassing PC-DOS entirely. 

3. The NEC V20 chip is being sup- 
ported. This provides faster perfor- 
mance than with software-only emula- 
tion but is limited to 8080 op codes 

4. The much-rumored NEC V2 5 chip 
(which executes Z80 op codes) will be 
supported if and when NEC an- 
nounces it. . 

5. From all of the Z80 add-on boards 
for the PC, we will select one to be 
supported by the Emulator. This hard- 
ware/software combination will be the 
most powerful Z80 environment avail- 
able. ■ 

216 BYTE* OCTOBER 1986 

Inquiry 210 


Keeping pace with perfection 
—Goldstar floppy disks 

Goldstar Magnetech has a relentless drive to keep pace 
with the last thing in computer peripherals. This requires 
systematic research which is paying off with innovative pro- 
ducts which measure up to the quality standard of excellence 
demanded by Goldstar. This you will find in Goldstar's line of 
floppy disks produced in 5 1 /4" and 3 1 £" types. It's a race to 
keep pace with perfection. What more could you want 
than this from a floppy disk producer? 

Now, Goldstar is keeping pace with the second 
generation of floppy disks in the 3 1 £" cassette --**^.. 
style floppy disk. Its features are: 
•blue, hard plastic shell protects surface during 
handling ^Sfc^ % 

•compact, pocket size 
•1.0 MB maximum capacity 

•auto shutter opens when inserted ^"^1 

•information preservation tab 

•metal hub ring for 100% error-free, tracking performance 
•special cleaning liner for eliminating drop-outs 

All Goldstar disks meet ANSI, DIN, ECMA, ISO and JIS 
standards, and carry a lifetime warranty. 

So, if you want a floppy disk that is really keeping up with 
the latest in peripheral technology, look for the Goldstar name. 











250 KB 

5 1 /<" 




500 KB 




1 MB 




1.6 MB 




250 KB 




500 KB 

3/z ' 




500 KB 




1 MB 

Eg GoldStar Magnetech Co., Ltd. 

C.RO. Box 305, Seoul, Korea Tel.: 756-9090, Tlx.: GSMTL K29579, Fax.: 756-0526 


Inquiry 177 

•Tokyo Tel.: (03) 582-9121/7 Tlx.: 2422711 (LGIJPN J) Fax.: (03) 584-6852 -Los Angeles Tel.: (213) 404-2626/9 Tlx.: 910-583-5719 (LGI LA) Fax.. (213) 926-0849 -London 
Tel.: 840-7111 Tlx.. 21765 (LGIUK G) -Paris Tel.: 4734-52-06,4734-52-83 Tlx.: 201877 (LGIPAR F) -Frankfurt Tel.: (069)6664083/5 Tlx.. 4185337 (LGIF D) Fax.. (069) 6666865 


P 9» 

i-H-M-J-ll i II t; 

Use the Brains your IBM 
WasnT born With. 

Right at your fingertips 
in CompuServe's IBM® 

In the IBM New Users Foruin you'll 
swap ideas with other new PC users, learn 
to use Forum features, and pose even 
basic questions to PC experts. 

Our IBM Junior Forum gives PCjr® 
users a reliable source for tips on software, 
hardware, telecommunications, games 
and other interests. 

In the IBM Software Foruin you'll 
trade tips with other IBM PC and AT users 
on utility software, word processing, DOS 
and other operating systems. 

Visit the IBM Communications Foruin 
for advice on the features and compatibil- 
ity of communications software and 
hardware, PC Bulletin Boards, micro- 
mainframe interfaces and more. 

The IBM Hardware Foruin addresses 
hardware topics of all types, plus product 
updates and announcements. 

Easy access to free software. 

• Download first-rate, non -commercial, user- 
supported software and utility programs. 

• Take advantage of CompuServe's 
inexpensive weeknight and weekend rates 
(when Forums are most active, and standard 
online charges are just IOC a minute). 

• Go online in most major metropolitan 
areas with a local phone call. 

• And receive a $25.00 Introductory Usage 
Credit with purchase of your CompuServe 
Subscription Kit. 

Information you simply can't find 
anywhere else. 

Use the Forum Message Board to send 
and receive electronic messages, and pose 
specific questions to other IBM and com- 
patible owners. 

Join ongoing, real-time discussions in a 
Forum Conference. 

Search our unparalleled Forum Data 
Libraries for free software, user tips, tran- 
scripts of online conferences and more. 

Enjoy other useful services like: 

• Popular Computer Magazines — electronic 

editions, for your reading pleasure. Including 
Dr. Dobb's Journal and Computer Language. 
• Other CompuServe Forums — supporting 
LOTUS® products like Symphony™ and 
1-2-3™ Borland International? Ashton-Tatef 
Digital Research? MicroPro? Microsoft® and 
other software. Also Pascal, Basic, C, Forth, 
Assembly and other programming 

All you need is your IBM or IBM- 
compatible computer and a modem 
... or almost any other computer. 

To buy your Subscription Kit, see your 
nearest computer dealer. Suggested retail 
price is $39.95. To receive our free bro- 
chure, or to order direct, call 800-848-8199 
(in Ohio, call 614-457-0802). If you're al- 
ready a CompuServe subscriber, type GO 
IBMNET (the IBM Users Network) at any 
! prompt to see what you've been missing. 


Information Services. P.O. Box 20212 

5000 Arlington Centre Blvd., Columbus, Ohio 43220 


In Ohio, Call 614-457-0802 

An H&R Block Company Inquiry 70 



by Brock N. Meeks 

A roundup of some of the best 
public domain CP/M software 

THERE IS A CORE of time-tested, 
quality CP/M public domain pro- 
grams, programs that are candidates, 
if you will, for the CP/M Hall of Fame. 
(If sled dogs can have a Hall of Fame, 
why not PD software?) The programs 
outlined below are some of the best 
in the field and appear on practically 
any CP/M user's "must have" list. 


ZCPR3 is a powerful program for 
turbocharging CP/M's console com- 
mand processor (CCP). Created by 
Richard Conn, ZCPR3 (Z80 Command 
Processor Replacement) is an entire 
operating system. Besides being a 
replacement for your CCP, ZCPR3 also 
offers a set of software tools, utility 
programs that use ZCPR3's special 

ZCPR3 enhances some of the built- 
in commands of your present CCP. 
For example, under ZCPR3 TYPE will 
pause at every screen full of text (22 
lines). Additional built-in commands 
such as LIST come with ZCPR3. LIST 
enables you to dump a file to the 
printer. Here are some of the more 
important functions of ZCPR3: 

Named directories— AO: and B13: don't 
tell you anything about what pro- 

grams are in those user areas. With 
this system you can give AO: the name 
dBASE: or B13: the name TEXT:. 

Search paths— \f you specify a path, 
ZCPR3 will search for a particular pro- 
gram along that path until it finds it. 
For example, if you enter dBASE at 
the B> prompt, ZCPR3 will auto- 
matically search for it on drive A if it 
is not found on drive B. The pathways 
you specify can be quite complicated, 
a feature any hard disk owner will 
quickly appreciate. 

System security- This utility allows you 
to effectively lock out certain drives 
or user areas. You can also eliminate 
the ability to run dangerous com- 
mands such as ERA *. *. This feature 
is known and loved by many bulletin 
board sysops. 

ZCPR3's utility programs total 76, 
too many to list here. These are main- 
ly for manipulating and maintaining 
how you use ZCPR3. For instance, 
PATH alters any previously defined 
search path, D1FF compares any two 
files, and F1NDF ferrets out a file from 
all possible directories. 


This file directory program is often 
renamed D.COM and takes up 80K to 

100K bytes of source code. It is 
loaded with bells and whistles. Figure 
1 shows a list of available parameters 
called with the command SDD $?. 

To get a listing of all files, in all user 
areas, dumped to your printer, you 
would issue the command D $AP If 
you wanted to have all files archived 
in libraries printed out as well, the 
command would be D $APL. 


New Sweep, as this file-maintenance 
program is called, is for people who 
can never remember the syntax for 
the PIP command. It was written by 
Dave Rand and does so much that its 
menu (see figure 2) speaks for itself. 
The Tkg option lets you mark multi- 
ple files for any particular operation. 
You simply tag each file by pressing 
T" after each filename. (When the 
program is executed, all files on disk 
are listed vertically.) When you've 
tagged all the files you want to work 
with, you can erase them, mass-copy 


Brock N. Meeks (8383 Center Dr., Suite C, 
la Mesa. CA 92041) is a contributing editor 
for Profiles and Microtimes magazines. He 
is the winner of a Computer Press Associa- 
tion award for outstanding writing. 

OCTOBER 1986 -BYTE 219 

CompuPro Solves 

the Network 



286/40 MULTI-USER 







Dont . b e _ ARCNET® 

puzzled by net- 
working. Compu- 
Pro puts all the pieces 
together— our high per- 
formance multi-user systems simul- 
taneously double as network servers 
for IBM® PCs. Move up to a true multi- 
user system and save your invest- 
ment in existing PCs. To find out how 
CompuPro can solve your networking 
puzzle, call today for the name of your 
nearest dealer. 


Viasyn Corporation 
26538 Danti Court. Hayward. CA 94545-3999 (415) 786-0909 

Suggested list prices, subject to change without notice. 

Trademarks: CompuPro. 286/80. 286/40. 10 Plus. 816/C2. NET 100. 
NET 10. NET PC HYBRID HUB: Viasyn Corporation IBM International 
Business Machines Corporation. ARCNET: Datapoint Corporation 
CPLINK: ComputerNet A/S 

220 BYTE' OCTOBER 1986 

A— All users 

R— Reset disks 

C— Clear 

S-SYS files 

D— All disks 

T— No time&date 

F-To file 

P— To printer 

H— Horizontal 

Un— User n 

K-PUB files 

V— No version 

L— Library 
N— No pause 

W— Wide (all times) 

Figure 1 : The list af parameters available for running SDD.COM. a directory 

A— Retag files 

Q— Squeeze/Unsqeeze tagged files 

B— Back one file 

R— Rename file(s) 

C— Copy file 

S— Check remaining space 

D— Delete file 

T— Tag file for mass 

E— Erase T/U files 

U— Untag file 

F-Find file 

V— View file 

L— Log new disk/user 

W— Wildcard tag of files 

M— Mass file copy 

Y— Set file status 

P— Print file 

?— Display this help 

Figure 2: The menu of NSWP207.COM [New Sweep), a CP/M file-maintenance 

them to a specified drive and user 
area, or squeeze/unsqueeze them. 
(Squeezing a file compresses it, sav- 
ing disk space or allowing shorter 
transfer times via modem. Unsqueez- 
ing restores it to its original form.) 

The Print option dumps a file to the 
printer. View lets you read a file on 
screen (even if the file is squeezed, 
which normally renders a file unread- 
able unless unsqueezed). The "Y" op- 
tion allows you to assign any file a par- 
ticular status (I-4.R.O). 


This library utility helps you get 
around CP/M's limit of 64 filenames 
per floppy disk by allowing you to 
group a set of related files under a 
single filename. All your old tax 
spreadsheet files can be grouped in 
a library called 1985TAX.LBR. Since 
a library, regardless of how many files 
are tucked inside, takes only one slot 
of the allotted 64 filenames, you can 
store many more programs on a disk. 
Also, when using a hard disk, a library 
file can save you space. Although a 

lK-byte file might be allotted the 
minimum 4K bytes on a hard disk, 
four 1 K-byte files in a .LBR file would 
take up only 4K bytes, a saving of 12K 
bytes if stored individually. 

NULU. written by Martin Murray, is 
an enhancement of the original LU 
(Library Utility) program by Gary P. 
Novosielski. This program lets you set 
up individual libraries on disk. The ac- 
companying documentation file is 
36K bytes long and explains in detail 
how the program functions. 

NULU is a handyman for file manip- 
ulation. You can unsqueeze, rename, 
delete, add, and view file entries. It is 
also indispensable for transferring 
several related files via modem. You 
can pack your library file with 
squeezed files and send the single 
.LBR file to a remote computer in 
much less time than it would take to 
transfer each individual file. 


MEX (Modem Executive), a commu- 
nications program, is a direct descen- 


Wfe've resolved the high 
cost of high resolution. 

$ 1595. Monitor and board 

1280 x 800 pixel clarity at a clearly 
sensible price. The WY-700 graphics 
subsystem is the one monitor that 
lets you run both standard IBM 
software and high resolution appli- 
cations for the IBM PC, PC/XT, 
PC-AT, the WYSEpc and other 

$1595. Complete. Monitor 
and board. 

Now you can realize the full 
potential of Computer-Aided Draft- 
ing and Design packages like 
AutoCAD and Cadvance. The new 
graphics-based personal computing 
environments — MS Windows and 
G. E . M . — finally have the high reso- 
lution display they were made for. 
Desktop publishing packages get 
the screen treatment they deserve. 
And off-the-shelf IBM packages — 
Lotus 1-2-3, Flight Simulator — take 
on brilliant new dimensions. 

Write Wyse Technology, 
Attn: Marcom Dept. 700, 3571 N. 
First Street, Sanjose, CA95134. 
Or call toll-free, today, for more 




AutoCAD drawing courtesy of CON SAFE and Autodesk. 

Ill 11 1 J 111 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 II 1 1 

Wyse is a registered trademark of Wyse Technology. WY-700 and the "V" shaped 
design are trademarks of Wyse Technology. IBM PC, IBM PC/XT and IBM PC-AT are 
trademarks of International Business Machines Corporation. AutoCAD is a trademark 
of Autodesk, Inc. Cadvance is a trademark of CatComp. Lotus 1-2-3 is a trademark of 
Lotus Development Corporation. Flight Simulator and MS-Windows are trademarks of 
Microsoft Corporation. G.E.M. is a trademark of Digital Research Corporation. 
© 1986 Wyse Technology. 

Inquiry 331 


dant of the MODEM7 communica- 
tions package and has a widespread 
user base. A commercial counterpart 
of MEX is sold through Night Owl 
Software, but the public domain ver- 
sion doesn't lack many features of the 
commercial product. 

MEX supports all the latest file- 
transfer protocols and even includes 
the ability to create script files (a 
series of commands that let the pro- 

gram automatically log on and inter- 
act with the remote computer once 
the carrier is detected). MEX calls 
these READ files. Overlays exist for 
virtually every CP/M system and 

A command called CLONE allows 
you to configure MEX for many dif- 
ferent systems. The program can also 
store custom phone lists. If you type 
in a stored name, the modem will dial 




This is ihc cily saved by ihc 
Alron bugbuslcrs. Your cily. 
Full of wizards, with hundreds 
of millions of dollars invested 
in wringing every ounce of 
intelligence and performance 
oul of your PC. Il used to be 
plagued wilh the toughest 
software bugs known to man- 



The first and most difficult 
plague was impossible to trap 
wilh software debuggers. 
These were carnivorous bugs 
which randomly overwrote 
programs, data, even ihc 
debugger. Nastiest were the 
ones that slipped in once every 
few houis, or changed Ihcir 
behavior after each new com- 
pile. Forty days and forty 
nights of recompiling, trying 
something else, caused many 
a would-be resident of the cily 
lo run screaming into the wil- 
derness, never to be heard 
from aeain. 

Second came the plague of 
nol knowing where the pro- 
gram was, or where il had 
recently been. This com- 
pounded the lirsl plague: How 
could anyone know what 
caused the random memory 
overwrites? Add lo Ihis ran- 
dom interrupts and liming 
dependencies, and you begin 
lo understand The Fear thai 
gripped the cily. 

Then came the last plague, 
which brought the wizards lo 
their knees before they even 
started debugging. Their low- 
ering programs consumed so 

much memory, there wasn't enough room for their symbol table, let alone 
debugging software. Even if they could gel pasl the lirsl iwo plagues, ihis 
one killed their firstborn software. 


The Alron solution came as a revelation: Monitor every memory 
reference and every instruction executed, by adding a hardware board lo 
Ihc AT or PC wilh an umbilical probe lo the processor. 

The result? Wham! 'Die PC PROBE 11 * and the AT PROBE'* saved 
civilization as we know it. The lirsl plague was cured wilh PROBE'S 
hardware-assisted breakpoint traps on reading, writing, executing, input- 
ting and oulputting. These could be done on single or ranges of addresses, 
and could include particular data values. All in real lime. For a mere 
software debugger lo allcmpl this, a 1 -minute program would lake 5 hours 
lo execute. 

The second plague, nol knowing from whence you came, was cured 
wilh PROBE'S real-time trace memory. The history of program execution 
is saved on-board. in real lime. Once a hardware irap has occurred. 

PROBE displays the program execution in detail, including sym- 
bols and source code for C, Pascal, or assembly language pro- 
grams. Which shows how oul-of-rangc pointers got lhal way 

The third plague, nol enough room for ihc 
debugging symbol table lo be co-rcsidcnl in 
memory with a large program, was cured wilh 
megabyte of on-board, hidden, wrilc-pro- 
tcctcd memory. System memory was then free 
for the program, keeping the symbol tabic and 
debugger safe from destruction. 

When the job of bugbusling 
was done, Ihc wizards used 
their PROBEs as performance 
analyzers. So they could have 
bolh reliability and perfor- 
mance. So they could send 
only the best software into Ihc 


On any given week, at Icasl 
nine of the lop len best-selling 
software packages on the Sol" l- 
Sel Hollisl come from Alron 

Ever heard of Borland? 
"Without Alron," says its 
president Philippe Kahn, 
"there wouldn't be a Side- 
Kick™ , Turbo Lightning 1 " 
would be light-years away, and 
Turbo Prolog"* wouldn't be 
shipping today" 

Ever use a spreadsheet? 
From Enable'" lo Paradox'", 
Ihcir bugs were busted by 
Atron products. 

Into DBMSs? Everyone 
from Ashlon-Talc lo Oracle 
owns at least one Alron bug- 

If you use a product from 
one of the companies in The 
City, you owe life as you know 
il lo Alron. Our guess is lhal 
99% of all PCs, XTs and ATs 
have al least one product 
debugged wilh Alron bug- 


We've written a complete tutorial on slale-of-lhc-arl bugbusling. 
And it's yours, free for the asking. Full of examples and illustra- 
tions, it will show you how ihc wizards work their magic. 

If you're tired of suffering the wralh of program bugs, call Alron 
loday. You could be busting bugs, and sales records, tomorrow. 

** j in 


20665 Fourth Street • Saratoga, CA 95070 • 408/741-5900 

Copyright © l'JX6 h; 

nCnrp PCPROHK'" and AT PRO UK'" Alron The < 

the corresponding set of numbers (in- 
cluding any alternate carrier access 
codes, like for MCI or Sprint). 

Other Candidates 

In voting members into any Hall of 
Fame, there is always debate, con- 
troversy, and gnashing of teeth. My 
nominations will no doubt draw fire 
from those who think that other pro- 
grams should be included. Here are 
some that could make it on the next 

VDE— a superb 7K-byte screen 
editor, though word processor comes 
to mind immediately. This little pro- 
gram is great for editing downloaded 
text files, and it can do several of the 
same functions as WordStar, including 
word wrap. It is also great for writing 

SODU (Screen Oriented Disk Utili- 
ty)— has saved its share of crashed 
disks. A disk editor like this lets you 
examine or change the information 
on disk byte by byte. With it you can 
recover damaged files that other pro- 
grams (like your word processor) 
refuse to boot up. 

MCAT— can manage that zoo you 
call a floppy disk file. The program 
automatically catalogs and records 
each filename on each disk. The 
associated file XCAT allows you to 
print out the listing. 

EX— a small wonder that is the utili- 
ty that CP/M's built-in SUBMIT pro- 
gram should have been. EX is quicker 
and more versatile than SUBMIT. 

R ESQ— recovers a text file from 
memory after you enter a word or 
phrase to search for. The file is re- 
stored from the first occurrence of the 
word or phrase to the end of the file. 

UN ERA— the ultimate recovery tool 
that will undelete files you just deleted 
from disk. It restores a file in full if you 
haven't written to the disk since eras- 
ing the file. 

I could mention many more pro- 
grams, but you will find those listed 
above to be reliable and upgraded 

Editor's note: Owing to the size of these pro- 
grams, the executable code for all the CP/M 
programs is available only on BYTEnet ((617) 
861-9764) and on BIX. Readers may also 
want to contact the CP/M Users Group, 345 
East 86th St.. New York, NY 10028. ■ 

222 BYTE • OCTOBER 1986 

Inquiry 30 



Citizen™ just took all the features of a high-end printer and 
made a small change. 

We put them into a low-end printer. The Citizen 120D. . 

We created a dot matrix printer with more features and a lower 
price than any other printer in its class. One that produces clean, pre- 
cise letters at a draft speed of 120 cps ; with superior correspondence 
quality at 25 cps. 

We added little extras ; like a 4K-byte buffer ; proportionally 
spaced printing, full graphics capabilities, and a unique paper loading 
system that's a small wonder. And we gave it the ability to survive the 
long run with most leading computer systems. 

Because after 50 years of placing a world of precision on your 
wrist, we've come to realize something. Good things do come in 
small packages. 

For more information, call 1-800-556-1234 Ext. 34. Or in 
California, call 1-800-441-2345 Ext. 34. 

The Citizen 120D. Never has 
so much been offered to so many 
for 50 little. 

oration. Citizen and the Citizen 
i Watch Company, Ird.^ 

inters that run like clockwork 

Inquiry 343 


3 paper feed in g con trols, 
plus paper-sa vin g 
push/pull tractor feed. 

Diagnostic self -test 
signals errors with 
flashes and beeps. 

Go off-line to change 
type styles and modes 
with out lengthy 
software commands. 

12 pushbuttons 
to con trol prin tin g 

Lets you feed paper 
line-by-line, by 1/216-inch 
in crem en ts, or con tin u o usly. 

This could be the most intelligent 
group of buttons ever assembled. 

You'll find them on the front of 
every Alps Dot Matrix 
Printer. And you'll 
use them to do 
something most 
printers can t. 


Just push a 

ALPS fjjdo) 

button on our front panel. You can 
change type styles and print modes, 

load paper automatically, reprint data 
stored in the print buffer, even over- 
ride your software to do things it can't. 

All while using your 
PC for other work 
at hand. 

But of course, 
Alps printers are 
more than a bunch 
. I MN..1.U-... i .J.UI I .L of buttons. 
They're fast. The new P2100™ prints 
drafts at an amazing 400 cps, the 


Clears prin tbu Her 
of data without 
printing it. 

17 LEDs in dica te 
functions in operation. 

mm host i 

Hi HOST ■ 

■■ HOST mmm 

MB C1 


■10 — ■ 





. XT 





Choose three 
almost amazing 
P2000 speeds: 
[— 250 cps draft 
1 25 cps memo, 
or 50 cps letter 
quality. Price: $995, 

A u tomatically reprints da ta 
stored in prin t buffer 
(4K expandable to 256K). 

Select fon t cartridges, 
prin tin g modes, prin t 
pitches and spacing 
quickly and easily. 

Choose three amazing 
P2100 speeds: 400 cps 
draft, 200 cps memo, 
or 80 cps letter quality 
Price: $1595. 

P2000™at an almost amazing 250 cps. 

They're versatile. They print 
everything from letters and graphs 
to six-part forms and 16 -inch-wide 
spreadsheets. And they run with all 
the most popular PCs and software. 

Best of all, they're reliable. 
Because Alps printers are among the 
most solidly built at any price. In fact, 
with normal care, they'll run five 
years or more without a breakdown. 
And their precision-engineered print- 
inquiry 17 for End-Users. Inquiry 18 for DEALERS ONLY. 

head will deliver over 200 million 
characters of superb output. 

So don't just get a printer that does 
a lot of work. Get one that doesn't 
interfere with yours. 

An Alps. 

For our brochure and name of our 
nearest dealer, call (800) 828-ALPS. In 
CA, (800) 257-7872. _ _ _^_ 

We'll show you A DC 
how to push all the * *md& fcJ 
right buttons. 


P2000 and P2100 are trademarks of Alps Electric Co., Ltd. ©1986 Alps America. 



Reviewer s Notebook 

by ]on Edwards 229 

The Commodore Amiga 

by lorn Thompson 231 

The Compaq Portable II 

by Stan Miastkowski 239 

Four 14-inch Tape Backup Units 

by Malcolm C. Rubel 243 


by Robert 1. Schalkoff 249 

ITCs Modula-2 

Software Development System 

by Mark Bridger 255 

Microsoft Word Version 3.0 

by Malcolm C. Rubel 261 

The Norton Utilities, PC Tools, 
and Super Utility 

by Rubin Rabinoviti 265 

Review Feedback 273 

THE COMMODORE AMIGA is a special machine. Tom Thompson provides 
a detailed look at its capabilities and performance. In his view, the Amiga's 
spectacular graphicsJs the major strength of the machine but the peripherals 
and software also contribute to the system's viability. Still, he reports on the 
quirks and problems that you will face with AmigaDOS and the multitasking 
operating system. 

The Compaq Portable II is a compact version of the Compaq Portable 286. 
Stan Miastkowski examines the Model 3, which has a single floppy disk drive, 
a lOmegabyte hard disk drive, and 640K bytes of RAM in a 26-pound case. 
He has found that the machine is well built, highly compatible, and easy to 
expand, but highly priced. 

It doesn't take long after you've purchased a hard disk to realize how 
vulnerable you are unless you back up your files. Malcolm Rubel reviews four 
tape backup units and the Alpha Microsystems' Videotrax, a VCR alternative. 
He concludes that the Ikcmar QIC-60 is a winner as far as speed is concerned, 
although the other units perhaps provide a better value or an easier environ- 
ment for beginners. 

Robert Schalkoff looks at the muLISP-86 LISP development system, which 
is identical to Microsoft LISP. He has found that the major strength of the 
language is its suitability for use within the constraints of a microcomputer 

Mark Bridger examines ITCs Modula-2, and he compares it to TUrbo Pascal. 
He recommends that you examine your needs before making the transition 
from Ttirbo Pascal. 

Malcolm Rubel also reviews Microsoft Word version 3.0. The application 
is full-featured, but he concludes that the word processor lacks some of the 
comforts and the speed that he has come to expect. 

Finally Rubin Rabinovitz compares the latest version of The Norton Utilities 
to PC Tools and to Super Utility. He has found that The Norton Utilities offers 
the greatest number of features for file recovery and that PC Tools is somewhat 
easier to use and is more reasonably priced. 

OCTOBER 1986 -BYTE 227 

O U T S T A 

rao'yr: 1~86 

day: 23 


after b 

amount: $180,00 

horn' Assets 


$167, 627 




Checking Account 



Check 11438 

aaount: $168.06 

to: Household Expenses 






[fil Appliances & Hone Furnishings 

[hi Medical A Dental 

IB) Business-related Expenses 

[R] Recreation & Vacation 

id Clothing 

ESI Supplies a* Miscellaneous 

ID] Deductible Interest 

IT! Transportation 

[£] Education 

[*] Other (create new account) 

IF! Food 

im Gifts 

[Bhspl To correct 


[HI Housing 

[Esc] To cancel transaction 

HI Insurance 

>_>_" -J-J - ~-J- Jt slow -«wT xurabersbroelprjogram ^operation! hss^kepi yoiL- ~_~~_ ~_ - ~_- W W~- - 


~^j-~-j_ j Jindl^rati Oufs*^^^ 

- "yet- versatile -accounting- Itrueture^a .-beautiful ~cohcepf ior- pre^sentmg^actountecWoN-^-" j-~r~ 
-£ - J-;f-J-~-jouiflowr*n€ljm~ J- _~_- j- J- jr j- _r . 

'- ""*- ^ "- ^U ~~ ~~ "**- ~^^vui£ejd5~£ajfclra£k Jja t ^^ _~ j- _^ j- j- j- <j- j- j- _~ 

_ Se^yoy rDealer -Most-dea(erslwvr ^&een- set jtpjvjth' specwTfeandsn^ntf ructions -4ro -^ ~" - 

- *-. - - guide y^u-tT^lign"^ir4is^c^~o(^H*>gr^^ -~ J" J* J~ J" J" 
-or-lessrif youLdeatet cloeWFj>aye~tbe"&^asTtu^^ ^* ^^ 

^ ' - ^-^ mfornrration. For direcborderr,j>leMe enclose- $149700- plus ^ ------ 

- $4.50 For shipping, and" specify -Jwhefher~)toIuwanF UPS^tfii^da'ss-maiTdelivery.'Visa,.^ J* ^"* 

- ' '^ ^ MasterCard, American Exptwr,md®imn^l&^tectytipd. - - _~ - 




* ORDER LINE: (800) 637-4983 

(except in Illinois. Alaska and Hawaii) 

' *J"" ^Open 7 AWTtog :>Mj5entraTTIme 


I often wonder whether the time I 
spend shaping my working environ- 
ment really pays off. I suppose that 
my work habits are now more effi- 
cient, and I certainly enjoy watching 
macros give me more command over 
the system. But my investment in time, 
if not in money, is considerable. 

On my IBM PC, I have an AUTO- 
EXEC.BAT file that takes 3 minutes to 
boot and, despite having 640K bytes 
of RAM, I have less than 80K bytes 
for my work space. The reason may 
be familiar to you. I have a passion for 
RAM-resident software. 

I use SideKick, SuperKey, and TUrbo 
Lightning from Borland International, 
PopDOS from Bellsoft Incorporated, 
Kwic Query, an excellent new RAM- 
resident index of BYTE's back issues 
from Innovative Ideas Incorporated 
(1226 Holloway St., Dept. BPA, 
Lafayette, IN 47905. (317) 743-6416). 
two public domain applications (a 
digital clock and a print spooler), and 
a RAM disk to hold the TUrbo Light- 
ning dictionary. But passions for RAM- 
resident software can get you into 
trouble, especially when you load in 
several. For example, when I tried The 
Norton Commander last month, DOS 
commands no longer entered Super- 
Key's command stack. The Com- 
mander captured them all. Many util- 
ities like PRD+ and SuperKey do not 
work together; in this case, I assume 
because they use the same interrupts. 
Consequently there are times when 
1 have to change the AUTOEXEC file 
and reboot. 

I was therefore excited to get 
Referee from Persoft (2 740 Ski Lane, 
Madison, WI 53713, (608) 273-6000). 
This product sets up environments in 
which you can specify which of your 
RAM-resident packages are active 
with each of your applications. You 
might set up TUrbo Lightning to be ac- 
tive when you are on-line (very useful 

for avoiding cumbersome line editors) 
but inactive at the DOS level. Alter- 
natively, with memory to burn, you 
might load PRD+ for use with your 
main editor and SuperKey for use at 
the DOS level and in other applica- 

I can therefore recommend Referee, 
but it too introduced some incompat- 
ibilities. I found that once I had 
loaded Referee, SuperKey macros 
could no longer call SideKick func- 
tions. The reason, according to Per- 
soft, is that Referee employs two in- 
terrupts that SuperKey needs to rec- 
ognize that SideKick is there. Of in- 
terest is Persoft's claim that a similar 
but as yet unavailable utility has the 
same problem. 

Amiga owners are probably scoffing 
at this discussion, since the reason for 
having RAM-resident utilities in a 
sense is to simulate a multitasking en- 
vironment. Why struggle with incom- 
patibilities among utilities when a 
multitasking operating system can 
solve all these problems by providing 
access to every application you 

Order, for example, is a desktop 
organizer software package for the 
Amiga from the Northeast Software 
Group (165 Dyerville Ave., Johnston, 
Rl 02919, (401) 273-1001). It provides 
a telephone directory, a 21 -function 
calculator, a clock and message facil- 
ity, a 7-function scratchpad, a calen- 
dar, and a screen dump utility. With 
a hard disk, you can call up these 
functions nearly as fast as on the IBM 

Like me, you may well be more in- 
terested in the Amiga's graphics and 
sound environment than its multitask- 
ing abilities. We just received Future- 
Sound from Applied Visions Incor- 
porated (1 5 Oak Ridge Rd., Medford, 
MA 02155, (617) 488-3602). This 
sound digitizer includes everything 

you need to digitize voices, sound ef- 
fects, and music, using up to four 
tracks at a time and at up to 28,000 
samples per second. In a few minutes 
we were able to splice our own voices 
with a recording from "Star lYek." The 
software allows you to speed up, slow 
down, or reverse the playback, 
change the volume, and edit sounds. 
You can also incorporate recordings 
into your own BASIC or C programs 
by saving the digitized sounds in IFF 

We also have Digi-View from New- 
Tek (701 Jackson St., Suite B3, Topeka, 
KS 66603. (913) 354-9332). a video 
digitizer that lets you capture, display 
and store images in the Amiga's 4096- 
color hold and modify mode, in the 
standard 32-color IFF format, and in 
640- by 400-pixel monochrome. Digi- 
View plugs into the parallel port and 
uses a coaxial cable to connect to an 
RS-170 monochrome slow-scan video 
camera with two-to-one interlace. 
NewTek supplies the Panasonic 
WV-1410 camera as an option. To cap- 
ture images, you use a color filter 
wheel that mounts in front of the 
camera. The process is fairly quick 
(about 30 seconds for full color), and 
the final quality is excellent. 

Lest I forget my roots, I should men- 
tion a neat item for the Atari 800. 
Electronical Software (P.O. Box 803 5, 
Rochester, Ml 48063, (313) 258-5455) 
offers YEMACYB, a color graphics 
printer driver that lets you make color 
printouts with your black-and-white 
dot-matrix printer. With this software 
and four-color printer ribbons, you 
can generate color printouts of any 
graphics-7 or 7-plus displays saved in 
Micropainter-file format. 

Macintosh users, take heart. Next 
month I will report on the MacWorld 
Expo in Boston. 

— ]on Edwards 
Senior Technical Editor, Reviews 

m — Inquiry 289 

OCTOBER 1986 -BYTE 229 

$345 (OK) 

Reason 1: More Memory 

When you need more memory, the Abovefunction Card® from American Computer & Peripheral, Inc. delivers a full 2 
Megabytes of RAM to your American, IBM® personal computers and compatibles. 

The American Abovefunction Card can fill conventional memory to 640K with the remaining as expanded memory 

or install up to four Abovefunction Cards to provide the maximum 8 Megabytes of expanded memory for your PC 


Reason 2: More Functions 

In addition to expanded memory, the American Abovefunction Card includes commonly used features, such as a 
serial, parallel and game port and real-time clock/calendar, all on one board. 

The American Abovefunction Card has Cache Memory, an enhanced disk buffer software that is transparent to the 
user and gives up to four times faster hard disk access. RAM disk and print buffer capabilities are also contained on the 
EMM (Expanded Memory Manager)/Utility Diskette. 

Reason 3: Maximized Slot Usage 

Plan for the future with the American Abovefunction Card. One card provides your memory and multi-function needs 
in one I/O expansion slot. This frees valuable slot space for other enhancements. 
Reason 4: Compatibility 

The American Abovefunction Card is based on Lotus®/Inter/Microsoft® specifications and is compatible with Intel's 

.Above® Board. 

Reason 5: Price 

And, one of the best reasons of all, the American value: $725.00 (includes 2 Megabytes RAM) and $345.00 (0K) 



California Micro, Inc. 

Lo§ Angeles, CA (800) 792-6500 

5K Computers 

Orlando, FL (800) 624-3250 

Computer Wholesalers 
Lincoln, NE (402) 466-1962 

American Computer Distributing 
Chattanooga, TN (615) 870-1073 

Computerland of Whittier 
Whittier, CA (213) 945-8321 

Imagine Computers 
Goleta, CA (800) 344-2964 

The Super Source 
Norcross,GA (800) 241-8579 

Micro Configuration East, Inc. 
Booklyn, NY (718) 941-2512 

Columbia Data Systems, Inc. 
Columbia, TN (615) 381-4650 

Elek-tek, Inc. 

Chicago, IL (312) 6777660 

PC Land, Inc. 

Tustin, CA (714) 730-6723 

Mid America 

Carmel, IN (317) 846-3101 


Oklahoma City, OK (405) 787-4354 

Omega Data 

Kirkland.WA (206) 823-9769 

Inacomp Computer Center 
Columbus, OH (614) 431-2230 

Computer Professionals 
Lakewood, CO (303) 232-4009 

CPU Distribution, Inc. 
BurnsviHe, MN (612) 894-9310 

Omega Data 

Hillsboro, OR (503) 640-3995 

Inter-Micro Distributor, Inc. 
Alberta, Canada (403) 438-3997 

Inacomp Computer Center 
Saginaw, Ml (517) 790-1360 

Computer Peripheral Warehouse, Inc 
Deerfield Beach, FL (305) 481-2170 

Asibem, Inc. 

Bluespring, MO (816) 229-2442 

Power House Sales 

Sioux Falls, SD (605) 335-7181 

Paris Sud Electronique Composant 
Paris, France (1) 


j _ v See us at 


November 10-14, 1986 

Corporate Office: 2720 Croddy Way, Santa Ana, C A 92704 USA • Tel: (714) 54S2004 • Fax: (714) 54S2146 
Northeastern Office: 830 Busch Court, Columbus, OH 43229 USA • Tel: (614) 846-5433 • Fax: (614) 846-7656 

♦Abovefunction, IBM, Lotus, Intel Above and Microsoft are trademarks of American Computer & Peripheral, International Business Machines, Lotus Development, Intel and Microsoft Corporations, respectively. 

Inquiry 21 for End-Users. Inquiry 22 for DEALERS ONLY. 


The Commodore Amiga 

by Tom Thompson 

The Amiga from Commo- 
dore International is a busi- 
ness machine, a graphics 
workstation, a multitasking 
system, and a home com- 
puter. A bold statement, but 
the Amiga has a unique 
hardware design that gives it 
sufficient power, especially 
when combined with some 
pricey peripherals and im- 
proved software, to meet 
most of these expectations. 


The basic Amiga comes with 
2 56K bytes of RAM, and you 
can upgrade to 512K bytes 
easily with a 256K-byte RAM 
expansion cartridge that 
plugs into a slot behind a 
front panel. A built-in 31/2- 
inch double-sided disk drive 
holds 880K bytes, and the 
machine has a connector for 
an external drive. The Amiga 
can support three additional 
drives— either double-sided 
3 '/2-inch or double-sided 5^-inch. The 
system has programmable serial and 
parallel ports. TWo RCA jacks provide 
stereo audio output. The two joystick 
ports can be used to connect a two- 
button optomechanical mouse. 

The Amiga provides analog and 
digital RGB output for color monitors 
and a composite video output that 
can input directly into a VCR or color 
monitor. The Amiga also has an RF 
modulator port for TV outputs, but 
you need an external RF adapter unit 
for this type of use. On the right side 
of the machine, a panel covers the ex- 
pansion bus interface, a card edge 
into which you can attach additional 
memory or special peripherals. An 
important feature of the hardware is 
that you can synchronize the display 
to an external television signal, allow- 

The strong point 

of this well-designed machine 

is spectacular graphics 

ing the possibility of receiving, view- 
ing, and processing VCR or video 
camera input. 

The Amiga uses a Motorola 68000 
microprocessor chip running at 7.16 
megahertz. Three custom chips han- 
dle the bulk of the display control, 
sound generation, and DMA (direct 
memory access) data transfers (see 
'The Amiga's Custom Graphics Chips" 
by Phillip Robinson, November 1985 
BYTE). You can manipulate eight re- 
usable sprites on two playfields with 
priority control and collision detec- 
tion. Area-fill and bit-plane copying 
are also supported, and four pro- 
grammable audio channels are avail- 
able. For additional information on 
the Amiga's hardware, see 'The 
Amiga Personal Computer" by Gregg 
Williams, Ion Edwards, and Phillip 

Robinson, August 1985 

I was disappointed to find 
out that the Amiga doesn't 
have a battery-operated 
clock. Such clock circuits are 
not difficult to build, and with 
880K bytes of data per flop- 
py disk drive, a time stamp 
on a file is a requirement. 
The clock should be stan- 
dard, but you can buy pe- 
ripherals that contain a clock. 


The Amiga display has two 
resolutions. Low resolution is 
320 pixels per line and 200 
lines per screen, with a 
choice of 32 colors from a 
palette of 4096. High resolu- 
tion is 640 pixels per line for 
200 lines, displaying 16 
colors out of 4096. An in- 
terlace mode allows you to 
double the vertical resolu- 
tion: 320 pixels for 400 lines 
in low resolution and 640 
pixels for 400 lines in high resolution. 
A special mode called hold and 
modify (HAM) allows you to use six 
bit planes in a controlled manner to 
display the entire 4096 colors simul- 
taneously. This last mode is perhaps 
the most spectacular: Digitized pic- 
tures utilizing HAM have a television- 
like quality to them due to the range 
and subtle shading of the colors dis- 
played (see photo 1). 

The Amiga can present text in a 
variety of sizes, colors, fonts, and 
styles. You can also present text in 60 
or 80 characters per line. The system 
ROMs contain two default system 
fonts; other fonts are stored as .font 


Tom Thompson is a technical editor for BYTE. 
He can be reached at BYTE, One Phoenix 
Mill lane, Peterborough, NH 03458. 

OCTOBER 1986 • BYTE 231 


files on disk. The operating system will 
recognize additional .font files if you 
copy them to the disk and then install 

The Amiga has no problem with 
low-resolution displays, but an annoy- 
ing jitter appears in the interlace 
mode and in high-resolution displays. 
A monitor with high-persistence 
phosphors could alleviate the prob- 
lem but at extra expense. I also found 
that after using the 80-column text 
mode for several hours, my eyes 
began to burn. I found it much easier 
to endure the 60-column mode. 

Commodore offers an optional 
monitor, the 1080, which has a com- 
posite video input, allowing it to serve 
as an output device for a VCR or an- 
other computer. 


The Amiga has a detached keyboard 
with 89 keys. In addition to the usual 
alphanumeric keys you'll find Esc, Ctrl 
Del, two Alt keys, two Amiga logo 
keys, ten function keys, and four cur- 
sor keys laid out in an intuitive cross 

The keyboard can be read as pro- 
cessed input or as unprocessed (raw) 
input, depending on how the applica- 
tion has opened the console device. 

The raw mode interprets the keyboard 
as keycodes, allowing you to have fine 
control over the input. For example, 
you can differentiate between the left 
Alt key and the right Alt key if your 
application requires it. 

Disk Drives 

I appreciated having an external 
3!/2-inch drive, which increased the 
machine's storage capacity to 1.8 
megabytes. The Amiga cannot boot 
off the external drive, but having an 
external drive eliminates some of the 
disk swapping that occurs with some 
applications and compilers. 

A push button ejects the disk. This 
physical control appeals to some 
users, but you can destroy a disk's 
contents if you eject it prematurely. 
This shouldn't normally be a problem, 
but the Amiga seems to take a long 
time, sometimes several seconds, to 
flush the last of the data to a disk. The 
possibility of an accident seems great 
enough to justify your getting a disk- 
salvage utility. 

Operating System 

The operating system is composed of 
192K bytes of multitasking executive 
saved in 2 56K bytes of write- 
controlled storage (WCS) RAM. When 

Photo 1 : A demonstration of the Amiga's hold and modify mode. (Data file 
courtesy of Newtek.) 

the Amiga was first released, the 
operating system software design was 
not complete. The workaround pro- 
vides the operating system on a flop- 
py disk called the Kickstart that loads 
into the WCS at boot-up. The WCS 
uses its own memory; it does not use 
the 2 56K bytes of RAM that comes 
with the basic machine. You complete 
the boot process by inserting a 
Workbench disk (Commodore's term 
for the Macintosh-like window/icon 
user interface) or the system-installed 
Command Line Interface (CLI) disk. 

Improvements to the executive are 
issued through dealers at no charge. 
The current Workbench version is 1.1, 
with version 1.2 now in beta test. Each 
revision has introduced major im- 
provements in the overall operation 
of the machine. 

You have a choice of how to work 
with the Amiga. There is Workbench, 
a mouse-driven, icon-based window- 
ing interface, or AmigaDOS, which is 
a sophisticated CLI. Workbench is ac- 
tually "bolted" to the top of Amiga- 
DOS: Actions performed on the Work- 
bench call AmigaDOS functions. 
Either interface can start the other. 
From the Workbench you can double- 
click on a CLI icon to open a window 
with a simple CLI prompt, or from 
AmigaDOS you can issue the 
LOADWB command, which starts 
Workbench. I performed all system 
benchmarks under both Workbench 
and AmigaDOS. 


Like the Macintosh desktop, Work- 
bench has multiple windows, a menu 
bar, icons representing disks, and a 
'ttashcan. You can move, resize, open, 
and close windows using the mouse. 
You use the left mouse button for 
operating on a window or its contents 
and the right mouse button to ac- 
tivate and make selections on the pull- 
down menus. It takes a little practice, 
but it is easy to get used to. 

Various icons represent runnable 
applications. To execute them you 
double-click on the icon. You can also 
drag them to another location or to 
another disk, triggering a copy opera- 
tion. Drawers correspond to Macin- 
tosh folders and, like the Macintosh 


232 BYTE- OCTOBER 1986 







. . .You need BetterBASIG 
The BetterBASIC compiler has 
become the standard by which other 
BASICs are evaluated. BetterBASIC is 
completely compatible with GW-BASIC and 
PC-BASICA when running on IBM PC's and true 
clones. You can load and run your existing BASIC 
programs in BetterBASIC. It uses standard Microsoft 
syntax and gives you more than 150 additional state- 
ULE, and PROCEDURE. In benchmark comparisons, 
BetterBASIC is five times faster than interpreted BA- 
SIC. There is optional 8087/80287 math chip support, 
and an optional Runtime System to create stand-alone 

Ask your dealer or call to order: 


In Canada, call 416-469-5244 

Summit Software Technology, Inc T . M 

106 Access Rd. Norwood, MA 02062 

BetterBASIC is a registered trademark of Summit Software 
Technology, Inc. IBM PC, XT, AT are registered trademarks 
of International Business Machines Corp. Microsoft is a 
registered trademark of Microsoft Corp. landy is a registered 
trademark of landy Corp. 

^ EXE. files. BetterBASIC is not 
copy protected. Technical support is 
provided for all registered users. 
See for yourself why Dick Aarons of PC Magazine 
said "BetterBASIC may be the best of all BASIC pro- 
gramming worlds" and selected BetterBASIC as 
"Editor's Choice" (Oct. 29, 1985). 


8087/80287 Math Chip Support 

Runtime System 

Sample Disk with Ihtorial 



Inquiry 290 


Amiga 1000 


Commodore International 
1200 Wilson Dr. 
West Chester; PA 19380 
(215) 436-4200 


17% by 13 by 4 1 A inches 
13 pounds 


Processor: 68000 running at 7.16 MHz 
Memory: 256K bytes of RAM 
(standard); optional 256K-byte RAM 
expansion card for a total of 512 K bytes 
Mass storage: One 880K-byte double- 
sided double-density 3 1 /2-inch floppy 
disk drive 

Keyboard: Detached QWERTY with 89 
keys including 10 function keys; 
separate keypad for cursor keys; 
numeric keypad 

Expansion: Expansion bus card edge 
I/O interfaces: One RS-232C serial port; 
one DB-25 parallel port; two DB-9 
joystick ports; two audio outputs (RCA 
type); DB-23 RGB analog or digital 
output; composite video output (RCA); 
NTSC video output 


Amiga BASIC 
Tutorial (Mindscape) 
Kaleidoscope (Electronic Arts) 


1080 analog color monitor: $495 
3 1 /2-inch external drive: $295 
RAM expansion card: $195 
5V4-inch 360K-byte 
drive with IBM emulation 
software: $395 


116-page Introduction to Amiga 
291-page Amiga BASIC 





200 400 600 800 1000 400 800 1200 1600 2000 

I 64/128 





tm WM 140/280 








" 2 45 




10 20 30 40 50 


MM 5.2 1 





5 10 15 20 25 5 10 15 20 25 


* Amiga BASIC * * ABasiC 
t AmigaDOS 1 1 Workbench 

The Memory Size graph shows the standard and optional memory 
available for the computers under comparison. The Disk Storage 
graph shows the highest capacity for a single floppy disk drive and 
the maximum standard capacity for each system. The graphs for 
Disk Access in BASIC show how long it takes to write and then read 
a 64K-byte sequential text file to a blank floppy disk. (For the pro- 
gram listings, see BYTE's Inside the IBM PCs, Fall 1985, page 195.) 
The Sieve graph shows how long it takes to run one iteration of the 
Sieve of Eratosthenes prime-number benchmark. The Calculations 
graph shows how long it takes to do 10,000 multiplication and 10,000 
division operations using single-precision numbers. The System Util- 
ities graphs show how long it takes to format and copy a 40K-byte 

file using the system utilities. The Spreadsheet graphs show how 
long it takes to load and recalculate a 25- by 25-cell spreadsheet 
in which each cell equals 1.001 times the cell to its left. BASIC bench- 
marks were performed for both ABasiC and Amiga BASIC with on- 
ly the benchmark program running. The ABasiC programs use a 
different syntax to open files, and Amiga BASIC requires a CLEAR 
,30000,30000 command for the Sieve program to run. All System 
Utilities benchmarks were run under Workbench and AmigaDOS. 
The spreadsheet used was Lattice's Unicalc Spreadsheet version 
1 .0. All tests were done on an Amiga 1 000 using Workbench 1 .1 and 
AmigaDOS 1.1. The Amiga had two 880K-byte drives and 512K bytes 
of memory. 

234 BYTE • OCTOBER 1 986 


Hierarchical Filing System, each 
drawer represents a subdirectory. 

Although Workbench works well, it 
has a few quirks. To save a preferred 
arrangement of icons, you must select 
an icon and then choose Snapshot 
from the Special menu. You repeat 
this process until you've preserved 
the location of every icon, a very 
clumsy method. The Macintosh 
Finder saves the location automatical- 
ly. Also, new files generated by ap- 
plications don't appear in a window 
until you first close and then reopen 
the window. This isn't a serious prob- 
lem, but it can be confusing. 

When you have multiple processes 
running in separate windows, you 
make a window active by pointing to 
it and clicking with the left mouse but- 
ton. However, the active window 
doesn't come to the front of the 
screen. If it is hidden by other win- 
dows, it will stay that way. In fact, in 
some cluttered screens it can be dif- 
ficult to use the front and back win- 
dow controls, called gadgets, to bring 
the desired window to the front. 
Worse, clicking on a window's front or 
back gadget makes that window ac- 
tive. Once you've positioned the 
desired window at the front of the 
screen, it may not be the active win- 
dow. You might therefore enter key- 
board I/O into the wrong process. 


AmigaDOS is the CLI interface to the 
Amiga. It's based on IMpos, a multi- 
tasking system written by Metacom- 
co in England (see "TMpos— The Roots 
of AmigaDOS" by Dick Pountain, 
February BYTE). Experienced com- 
puter users will probably rely on 
AmigaDOS, since all the development 
software, programming languages, 
and assemblers operate exclusively in 
this environment. 

AmigaDOS allows you to assign 
logical paths, and an EXECUTE com- 
mand lets you submit batch files with 
parameter passing. At boot-up the 
Amiga searches the s subdirectory of 
the boot disk for a batch file called 
Startup-Sequence and, if it is present, 
executes it. This gives you a way to 
make logical device assignments to 
certain volumes or subdirectories, set 
the stack size, or prompt for the cur- 

rent time and date each time you 
start. You also select the operating 
system you'll start under (Workbench 
or AmigaDOS) in this file. 

Commands are programs stored in 
the c subdirectory on the boot disk. 
AmigaDOS scans this directory when 
you enter a command and loads the 
appropriate program into memory to 
complete the request. This slows 
operations because every command, 
including DIR, requires a disk access. 
You can rename these programs to 
suit your own preference. 

AmigaDOS has a built-in RAM disk, 
RAM:, whose size is limited only by 
the amount of available memory. You 
can customize the Startup-Sequence 
file to load frequently used com- 
mands such as TYPE, DIR, and EX- 
ECUTE into the RAM disk and 
logically assign it as the command 
directory, eliminating the penalty of 
accessing the floppy disk. 

You can obtain help for some com- 
mands by executing them with no 
arguments. FORMAT, for example, 
provides you with a complete set of 
arguments and keywords to format a 
disk. Not all commands provide this 
feature: COPY instead tersely states 
"Bad arguments." I'd like to see all 
commands that require keywords or 
switches to provide some sort of self- 
help because AmigaDOS doesn't re- 
semble MS-DOS in some areas. 

AmigaDOS has quirks, most of 
which are due to its dissimilarity to 
MS-DOS. First, AmigaDOS handles 
wild cards differently, mainly by not 
using the asterisk (*) as a wild-card 
delimiter. The COPY command re- 
quires an ALL switch to copy all the 
files on a disk or in a subdirectory. 
COPY does not perform concatena- 
tion: You must use a JOIN command, 
which doesn't offer self-help either. 
Second, AmigaDOS doesn't recog- 
nize the conventional Ctrl-S/Ctrl-Q 
data throttle. To stop output, you hit 
a key: to restart, you hit Return, back- 
space, or Ctrl-X. 

I've crashed the machine under 
AmigaDOS by using COPY with the 
ALL switch to transfer files to the 
RAM disk. Everything proceeds 
smoothly until the Amiga runs out of 
memory, at which point you get a fatal 
crash. This might happen to you by 

The Amiga handles 
multitasking quite 
well but only if all 
the programs are 
well behaved. 

accident if you put a number of 
source files in RAM: during the devel- 
opment of a program. I don't know if 
this is the fault of the Amiga operating 
system or of the COPY command. It 
does show that the version 1.1 system 
software still has some rough edges. 


The Amiga provides multitasking, 
allowing you to run several programs 
simultaneously. The programs share 
system resources such as memory or 
disk drives without conflict. However, 
the Amiga multitasking executive 
does not support virtual memory: 
Either you have enough memory to 
load your applications or you don't. 

With this fact in mind, how well does 
the Amiga handle multitasking? The 
display, normally one of the most 
CPU- and I/O-intensive processes, is 
managed effectively by the custom 
chips. Other types of I/O like disk and 
serial port accesses tend to slow 
applications down, but primarily 
because of the speed of these devices 
rather than the overhead required. 
I've tried a mix of different programs 
in a variety of ways with no problems 
(see photo 2). At the same time, at- 
tempting to run a buggy C program 
I had written hung the entire system, 
taking with it all the programs that 
were running. The moral here is that 
the Amiga handles multitasking quite 
well, but only if all the programs are 
well behaved. 

How much overhead do additional 
tasks add to the system? I experi- 
mented with running the C language 
version of the Sieve program with an- 
other graphics-intensive program run- 
ning in the background. I chose this 
program to experiment with how 


OCTOBER 1986 • BYTE 235 


much the custom hardware degraded 
performance when it had to cycle- 
steal heavily from the 68000 micro- 
processor. I used the bouncing ball 
demo, Boing!, plus the Robocity and 
amiga3d demos as background pro- 
grams. The results are shown in table 
1 . The Sieve runs in roughly twice the 
time that it had previously but with 
two programs, one with an extreme- 
ly complex graphics display, running 
simultaneously. Impressively, the 
Amiga is also scanning both the CLI 
window and the Workbench for 
mouse clicks or keyboard I/O at the 
same time. 

To make the most of multitasking, 
you need lots of memory and fast pe- 
ripherals. The memory is required to 
hold every program you'll have run- 

ning plus what the operating system 
needs to manage I/O queuing and 
context switching. Since the display is 
already handled by the custom chips, 
the next I/O bottleneck is disk ac- 
cesses. Of course, a hard disk will 
speed performance. The Amiga's per- 
formance with 1.5 megabytes of 
memory and a hard disk is superb: 
I've uploaded files to BIX at 1 200 bits 
per second while doodling in Aegis 
Images. On another occasion I com- 
piled four programs simultaneously 
with the Manx Aztec C compiler. 


It has not yet been a year since the 
Amiga's release, and already there is 
an impressive array of programming 
languages available for it: two BASICS, 

Table 1: Increase in program execution time with a graphics-intensive program 
running concurrently. Programs were run with Workbench version 1.1 with one 
CLI window open. Running times are in seconds. 


Running time 

Percent increase 


Sieve with Boing! 
Sieve with Robocity 
Sieve with amiga3d 






Photo 2: Multitasking on the Amiga. 

two C compilers, and two assemblers, 
along with LISP, Pascal, Modula-2, and 
FORTH implementations. 

The Amiga originally came with 
Metacomco's ABasiC. However, The 
machine is now bundled with Micro- 
soft Corporation's Amiga BASIC. 
Owners who had ABasiC got a free 
copy of Amiga BASIC with their ver- 
sion I.l operating system upgrade. 
Both interpretive BASICS allow you to 
access many of the Amiga's graphics 
libraries. ABasiC opens a single win- 
dow and behaves like a typical CLI- 
oriented BASIC with no mouse con- 
trol and no windows, Amiga BASIC 
presents you with a command win- 
dow and a list window. Several menus 
are available for the mouse user, or 
you can type commands in the com- 
mand window. Cut and paste func- 
tions are available in the list window. 
Both BASICS fit neatly into the 
Amiga's multitasking environment, al- 
though you have to adjust the stack 
size within a CLI window to get 
ABasiC to operate this way. 

There are several MacPaint-style 
drawing programs that allow you to 
use the graphics capability of the 
Amiga to produce color drawings. 
Graphicraft by Commodore was avail- 
able at the machine's release date. 
Electronic Arts released its Deluxe 
Paint in time for the Christmas season, 
and Aegis introduced its Images pro- 
gram in the spring. All three programs 
use an Interchange File Format (IFF) 
data structure that allows a picture 
produced by Graphicraft to be read 
and displayed by Aegis Images or 
Deluxe Paint. This lets you download 
pictures from various bulletin boards 
without regard for which paint pro- 
gram you own. 

Aegis provides two programs that 
give the Amiga serious graphics 
potential. The first is Aegis Animator, 
which can read IFF files to generate 
animated images. It provides a film- 
splicing capability called story- 
boarding that can be of use to il- 
lustrators or small advertising studios. 
The second is Aegis Draw, a drafting- 
style program that allows you to 
design scale drawings or blueprints, 
and it comes with a number of plot- 
ter drivers. 

For business needs, Lattice offers its 

236 B YTE • OCTOBER 1986 

Inquiry 191 


Unicalc Spreadsheet program. I used 
it for the spreadsheet benchmark 


The Amiga comes with two manuals: 
Introduction to Amiga and Amiga BASIC. 
The introduction manual extensively 
covers the Workbench side of the 
operating system. Its strongest point 
is the information it provides for the 
slightly nonstandard pin-outs on the 
serial and parallel ports. The manual's 
only information on AmigaDOS is a 
note in the Reference section on how 
to enter the CLI. 

Unless you copy notes out of the 
developer's manuals at your dealer, 
you'll probably need to buy The 
AmigaDOS Manual from Bantam Books 
(1986) for information on the CLI. This 
book actually contains three devel- 
oper's manuals: the AmigaDOS User's 
Manual which covers AmigaDOS com- 
mands; the AmigaDOS Technical Refer- 
ence Manual which describes the disk 
layout; and the AmigaDOS Developer's 
Manual which provides useful infor- 
mation for program development. 


The peripherals are effective but cur- 
rently expensive. I used Ikcmar's T- 
card and the 20-megabyte T-disk with 
the Amiga. The T-card attaches to the 
expansion slot on the right side of the 
Amiga and provides an additional I 
megabyte of memory plus a battery- 
powered clock. The joystick ports are 
passed to two DB-9 connectors on the 
front of the unit, and a serial port and 
hard disk port are located to the rear. 
The T-disk is small and compact, and 
it runs quietly. An external power 
supply feeds both the disk unit and 
the expansion board. 

I installed the 1-disk driver easily 
Getting the Amiga to recognize the 
extra memory in the T-card was not 
so easy; The instruction manual had 
detailed instructions on configuring 
the hard disk port and the serial port 
but nothing at all on the memory 
setup. It took several tries to deter- 
mine that it is necessary to select the 
memory option under the Devices 
menu, and then explicitly select "in- 
stall this device" under the Edit menu. 

Once properly installed, a script file 

The peripherals 
are effective but 
currently expensive. 

configures the operating system to 
recognize the additional memory and 
the hard disk at boot-up. By accident 
I trashed the hard disk the day after 
the installation; I've since rebuilt the 
disk files and have experienced no 
further problems, and it's been run- 
ning forty hours a week for over a 


For someone who plans serious use 
of this machine, I'd recommend get- 
ting the 2 56K-byte RAM expansion 
card and an external drive. Some 
compilers and programs need 51 2 K 
bytes of memory to operate; you 
need at least that much memory to 
hold two or three large applications 
concurrently. The external drive will 
prevent disk swapping, and it adds a 
manageable amount of storage. 

As far as software goes, the Amiga 
has a number of useful applications 
developed for it, with more being 
released each month. However, if you 
plan on running a program concur- 
rently with others, try using it on a 
machine that matches your system to 
check for possible compatibility prob- 

The Amiga is a well-designed piece 
of hardware. Its expansion bus allows 
you to add memory or useful periph- 
erals. The Amiga's strong point is its 
spectacular graphics. I feel confident 
that the machine will hold its own as 
a graphics engine for artists and pro- 
fessional illustrators. The only real 
hardware shortcoming is the high- 
resolution flicker. 

In terms of software, the Amiga has 
a long way to go. Its multitasking 
capability is good, but prone to break 
easily if memory is tight or if a pro- 
gram runs wild. The two operating 
system interfaces, Workbench and 
AmigaDOS, have problems. However, 
if the machine's only real limitation is 
its software, you can bet that it will get 

MicroCom Systems 


For IBM PC's and Compatibles 







□ CAD 1 — Altamira, an object oriented CAD 
program, and Supergraph 3. Color gr. req'd. 

□ COMM 1 - The ever popular QMODEM 2.0E 
modem communications program. 

□ COMM 2 - PROCOMM 2.3, an excellent 
modem program with terminal emulation. 

□ COMM 3 — Communications utilities to be 
used with QMODEM or PROCOMM. 

□ DATABASE 3 — The Pbase relational 
database manager with query language. 

FINANCE 1,2 — (2 disks) PC-Accountant and 
a personal finance manager, 

□ GAMES 1 — Chess, 3-D Packman, Kong, 
Spacewar, Janitjoe. and more. Color gr. req'd. 

□ GAMES 2 — Qubert. Pango, Centipede, 
Monopoly, Zoarre, and more. Color gr. req'd. 

□ GAMES 3 — Blackjack (you set rules), Arm 
Chair QB, and Empire (war game). 

□ GAMES 4 — Star Trek, the original Collossal 
Caves ADVENTURE, and Castle., 

□ GAMES 5 — The HACK adventure game 
from the universities. Like Rogue. 

□ GAMES 6 — Pinball, Othello, Dragons, 
Sopwith (fly one), and more. Color gr. req'd. 

□ GAMES 7 — Round42 (16 color graphics), 
Backgammon, Risk, and more. Color gr. req'd. 

□ LANGUAGE 2 - The renowned SMALL-C 
compiler and a C interpreter! 

□ LANGUAGE 3 - 8086/8088 assembler, 
disassembler, and tutorials. 

□ LANGUAGE 4 — 370 assembler language 
on the PC! A must for IBM 370 users. 

□ LANGUAGE 5 — Turbo Pascal interactive 
debug, pop-up help, formatters, etc. 

□ MUSIC 1 — Many clever tunes, and an 
excellent color graphics music editor. 

□ ORGANIZER 1 - DESKMATE, a sidekick 
clone, and the JUDY calendar program. 

□ ORGANIZER 2 — Menu driven project 
management using critical path scheduling. 

windowing outline editor/thought organizer. 

□ PICTURES 2 — High res digitized graphics 
pictures. Color graphics required. 

□ PINUP 2 — Provocative high res digitized 
graphics pinups. Color graphics required. 

□ PRINTER 1 — Font and sideways utilities, 
spoolers, banner makers, and more. 

□ SPREAD 1 — The PC-CALC spreadsheet 

□ UNIX 1 — A Unix command shell and various 
Unix commands for DOS. Emacs, etc. 

fj UTILITIES 1 — A collection of invaluable 
general purpose DOS utilities. A must, 

□ UTILITIES 2 — More invaluable general 
purpose utilities including NEWKF^Y. 

□ UTILITIES 3 — A comprehensive set of 
debugging and diagnostic utilities. 

□ UTILITIES 4 - The Ultra File Utilities; 
Norton-like utilities for diskettes. 

□ WORD 2 - Waterloo Script (like IBM's 
SCRIPT) text formatter for the PC. 


[7] COMM 4,5,6,7 - (4 disks) Latest RBBS 

Bulletin Board System 14.1 A. 
fT] DATABASE 1,2 - (2 disks) File Express 3.7, 

menu driven database manager. 

□ EDUCATION 1 — Interactive DOS tutorial for 
new PC users. Makes learning DOS painless. 

□ LANGUAGE 1 — The artificial intelligence 
languages LISP (XLISP 1.6) and PROLOG. 

□ LANGUAGE 7 — Pascal interpreter/compiler. 
Great for learning/debugging Pascal. 

□ PRINTER 2 — Letter quality print for your 
Epson compatible printer. 

□ WORD 1 - PC-WRITE 2.6. a powerful and 
complete word processing system. 

□ WORD 3 - The PC STYLE writing style 
analysis program. 

Cost of Disks 

CA Res 7% Tax . 
Ship/Handling _ 
Total Enclosed 


I MicroCom Systems 

V^ P.O. Box 51657, Palo Alto, CA 94303 

OCTOBER 1 986 • BYTE 237 

We Dared TbG 
Beyond RAM. 



Intelligent host adapter in- 
terface for hard disk drive. 


Apple II+, lie and He 
enhanced systems. Most 
SCSI hard disk drives. 


Cache Memory-replaces 
mechanical disk access 
with electronic data 

Z-80 processor-Maintains 
256K of "most frequently 
accessed data" in real 
cache memory. Automatic 
save function minimizes 
data loss. 

DMA-TYansfers data faster 
than RAM. Cuts booting 
time in half. 


The Kache Board is an intelligent host 
adapter interface for hard disk drives. 


It took over two years of research and 
development and long hours of testing to 
make this product a reality. Ohio Kache 
Systems dared to go beyond RAM to bring 
hard disk users a new standard in 
performance — The Kache Board. 


It's superior to RAM disk, thanks to the use 
of Cache Memory, Direct Memory Access 
(DMA), and an on-board microprocessor. 
When you combine these features with the 
performance of hard disk drives, you're 
looking at an overall 25%-30% decrease in 
access time and the virtual memory environ- 
ment of a minicomputer such as the VAX. 

OKS, Kache Board and the OKS logo are trademarks of Ohio 

Kache Systems, Inc. 

Apple Is a registered trademark of Apple Computers. Inc. 

IBM is a registered trademark of Internationa] Business 

Machines, Inc. 

Sider is a trademark of first Class Peripherals. Inc. 

VAX is a trademark of Digital Equipment Corp. 





■ Kache Board Performance 
RAM Performance 

■ Apple Performance with Hard 
Disk Drive 

■ Apple Performance 

increasing performance 

As more data files reside in Cache, 
the performance of the Kache Board 
continues to improve beyond that of 
RAM disk. An increasing number of disk 
access requests are replaced by electronic 
data transferfrom "real" cache memory (see 
graph above). 

Inquiry 214 


Available soon: Kache Boards for IBM and 
IBM compatible systems. 


The Kache Board is available exclusively 
from Ohio Kache Systems on a direct mail 
basis only. For more information on the 
Kache Board write for our free brochure. Or 
call us toll free at: 


Wethinkyoul! be as excited about 
this new product as we are! 

Ohio Kache Systems Corp. 
4166 Little York Road 
Dayton, Ohio 45414-2566 
©Ohio Kache Systems is a developer of 
computer enhancement products. 



The Compaq Portable II 

by Stan Miastkowski 

The Compaq Portable II is a 
slimmed-down version of the 
Portable 286 with several ex- 
tras that will particularly at- 
tract business users. There 
are four configurations of the 
Portable II. The Model 1 in- 
cludes a single one-third- 
height 360K-byte floppy disk 
drive and 2 56K bytes of 
RAM; the Model 2 includes 
two floppy disk drives and 
2 56K bytes of RAM; the 
Model 3 has a single floppy 
disk drive, a 10-megabyte 
hard disk drive, and 640K 
bytes of RAM; and the 
Model 4 has a single floppy 
disk drive, a 20-megabyte 
hard disk drive, and 640K 
bytes of RAM. Prices range 
from $3499 to $4999. The 
unit 1 used for this review was 
a Model 3. 


Except for the disk drives 
and RAM, all four Portable II 
models are full-featured. In addition 
to the 80286 processor (running at 
either 6 MHz or 8 MHz), the system 
has a real-time clock, an RS-232C 
asynchronous communications inter- 
face, a parallel printer interface, and 
a built-in 9-inch green phosphor dual- 
mode monitor that displays both text 
and graphics. The monitor board pro- 
vides output for RGB and standard 
composite NTSC video monitors. It 
a/so provides RF modulator output 
for hooking up the Portable II to a 
standard television set. 

The major selling point of the Por- 
table II is its size and weight. At IVi 
inches high by 17/> inches wide by 14 
inches deep, the Portable II is almost 
a third smaller than the original Com- 
paq Portable and the Portable 286. 
This is a substantial size reduction 

An 8-MHz IBM 

PC compatible in a compact, 

full-featured unit 

considering all the computer's 

In addition to size, Compaq de- 
signers have also trimmed the unit's 
weight. Depending on the model, the 
Portable II weighs between 231/2 and 
26/ 5 pounds. By comparison, the 
Compaq Portable 286 weighs 30/2 
pounds, and the Compaq Portable 
weighs 28/2 pounds. 

Inside the Case 

With the cover removed, it's obvious 
that the Portable II is primarily a 
mechanical and engineering exercise 
in the reduction of space and weight. 
The system is modular, and taking it 
apart is time-consuming, though not 
difficult. Still, the modular design 
lends itself to easy upgrading (see 

Removing a panel at the 
top rear of the system reveals 
the expansion slots and part 
of the motherboard. The Por- 
table II has four expansion 
slots. Depending on which 
model you have, the first 
three-quarter-length 1 6-bit 
slot is used by Compaq's 
floppy-only or floppy/hard 
disk controller card. The sec- 
ond slot (which is 8-bit) 
contains a full-length Com- 
paq video board. This leaves 
two full-length slots for ex- 
pansion; one is 8-bit, and the 
other is 16-bit for IBM PC 
AT-compatible circuit 

The video display tube, its 
associated electronics, and 
the system power supply are 
located under another solid 
panel that should only be 
removed by computer ser- 
vice personnel. The com- 
ponents there are placed to 
take advantage of the airflow 
from the power supply's fan. The fan 
does a more than adequate job. I left 
the Portable II on for more than a 
week and the system never even 
became warm to the touch. The fan 
is also very quiet. 

Compaq says the power supply is 
designed for a steady 120- watt load 
and can handle a peak drain of up to 
165 watts. Next to the power supply 
is a small empty space into which 
your dealer can install an optional $89 
power-switching board that automat- 
ically senses whether the Portable II 
is plugged into 120-volt or 220-volt 


Stan Miastkowski (P.O. Box 548, Peter- 
borough. NH 03458) is a freelance writer, 
northeast bureau chief for Newsbytes, and 
editor in chief of the McGraw-Hill Micro- 
computer Handbook. 

OCTOBER 1986 'BYTE 239 


Compaq Portable II 


Compaq Computer Corporation 
20555 FM 149 
Houston, TX 77070 
(800) 231-0900 


7V2 by 17V2 by 14 inches; Model 1: 
23 1 /2 pounds; Model 2: 25 1 /2 pounds; 
Models 3 and 4: 26 1 / 5 pounds 


Processor: 80286, 6 MHz or 8 MHz 

Memory: Models 1 and 2: 256K bytes 
on the main system board; Models 3 
and 4: 640K bytes on the main system 
board; up to 2.1 megabytes without 
using an expansion slot; up to 4.1 
megabytes using the 16-bit expansion 

Mass storage: Model 1: One one-third- 
height 360K-byte 5 1 /4-inch floppy disk 
drive; Model 2: Two one-third-height 
360K-byte 5 1 /4-inch floppy disk drives; 
Model 3: One one-third-height 360K- 
byte 5 1 /4-inch floppy disk drive and one 
10-megabyte hard disk drive; Model 4: 
One one-third-height 360K-byte 5 1 /4-inch 
floppy disk drive and one 20-megabyte 
hard disk drive 

Display: Built-in 9-inch green phosphor 
dual-mode; switchable text/graphics 

Keyboard: Modified IBM PC AT layout 
Expansion: All models: One IBM PC- 
compatible slot and one IBM PC AT- 
compatible slot 

I/O Interfaces: Parallel printer; 9-pin 
RS-232C interface; RGB monitor; 
composite NTSC video; RF modulator; 
light pen 

Optional Software 

MS-DOS version 3.1: 



Operations Guide 
Technical Reference Guide 


Model 1: $3499; 
Model 3: $4799; 

Model 2; 
Model 4: 




200 400 600 800 1000 400 800 1200 1600 2000 






20 40 60 


20 40 60 80 100 




50 100 150 200 250 

50 100 150 200 250 







10 20 30 40 50 10 20 30 40 50 





5 10 15 20 25 

5 10 15 20 25 



The Memory Size graph shows the standard and optional memory 
available for the computers under comparison. The Disk Storage 
graph shows the highest capacity for a single floppy disk drive and 
the maximum standard capacity for each system. The graphs for 
Disk Access in BASIC show how long it takes to write and then read 
a 64K-byte sequential text file to a blank floppy disk, (For the pro- 
gram listings, see BYTE's Inside the IBM PCs, Fall 1985, page 195.) 
The Sieve graph shows how long it takes to run one iteration of the 
Sieve of Eratosthenes prime-number benchmark. The Calculations 
graph shows how long ittakesto do 10,000 multiplication and 10,000 

division operations using single-precision numbers. The System Util- 
ities graphs show how long it takes to format and copy a disk (ad- 
justed for 40K bytes of disk space) using the system utilities. The 
Disk Copy test measures the time it takes to copy a 40K-byte file 
from one floppy disk to another. On hard disk systems, the test 
measures the time to copy from the hard disk to the floppy disk. 
The Spreadsheet graphs show how long it takes to load and 
recalculate a 25- by 25-cell spreadsheet in which each cell equals 
1.001 times the cell to its left. The spreadsheet used was Microsoft's 
Multiplan. Tests were run using the default 8-MHz clock speed. 

240 B YTE • OCTOBER 1986 


power. This option would be handy 
for international users. 


The 80286 processor is barely visible 
under the video board; the socket for 
an optional 80287 arithmetic copro- 
cessor is easily accessible. The rest of 
the motherboard is hidden under the 
circuit boards, disk drives, and 
monitor/power supply case. A total of 
128K bytes of RAM is soldered into 
the board, and there are 18 sockets 
for RAM chips. In Models 1 and 2, 
these sockets are filled with 64K-bit 
chips for a total of 2 56K bytes of 
memory; Models 3 and 4 have 2 56K- 
bit chips for a total of 640K bytes. 
Adding RAM isn't a problem; you 
simply turn the unit over and remove 
another panel. There you can insert 
a special Compaq memory-expansion 
board that uses a pin connector in- 
stead of an edge connector. The 
board comes with 512K bytes of 
RAM, and you can configure it for up 
to 1 536K in 5 12K increments without 
tying up an expansion slot. You can 
also upgrade the unit to 4.1 mega- 
bytes of RAM by installing a 2048K- 
byte Compaq memory-expansion 
board into the 16-bit expansion slot. 


Compaq describes the Portable M's 
84-key keyboard as having a modified 
IBM PC AT layout. The full-size key- 
board is compact because the func- 
tion keys are at the top rather than on 
the left. You can adjust the audible key 
clicks from full volume to off. 


The Model 3 that I reviewed had a 
single 360K-byte floppy disk drive and 
a 10-megabyte 3 /2-inch MiniScribe 
hard disk drive. The hard disk "floats" 
on four small rubber shock mounts 
that are designed to cushion the hard 
disk. / accidentally dropped the ma- 
chine 2/2 feet onto a carpeted floor. 
The case wasn't marred, and the g 
forces of the impact were well ab- 
sorbed by the shock mounts. The Por- 
table II worked perfectly after the drop. 


The Portable 11 is easy to upgrade. 
With the exception of the automatic 

power-switching board, which must 
be installed by an authorized service 
center because of Federal Communi- 
cations Commission and Underwriters 
Laboratories regulations, you can 
easily upgrade the Portable II your- 
self. Because of all the screws, panels, 
and parts that you must remove, the 
process may be time-consuming, but 
the Portable Il's Operations Guide has 
excellent instructions complete with 
copious photographs for both dis- 
assembly and reassembly. 

If you have a single-drive Model 1 
you can easily add a second 360K- 
byte floppy disk drive or a hard disk. 
The most time-consuming task is up- 
grading the motherboard RAM from 
2 56K to 640K on a Model 1 or Model 
2. The change requires you to remove 
expansion boards and the stand- 
alone enclosure that holds the disk 
drives and replace eighteen 64K-bit 
RAM chips with 2 56K-bit chips. Com- 
paq charges $150 for the 512K-byte 


As you might expect, the Portable II 
runs software very quickly, especially 
when you use the default 8-MHz clock 
speed. Compaq includes a list of 
several hundred software packages 
that run on the Portable II. I tested a 
dozen different programs, some of 
which were not on the list. I had no 
problems whatsoever. All ran at 8 

You might expect that the 105-mil- 
lisecond access speed of the 3!/2-inch 
hard disk drive would provide slow 
performance compared to the 30-mil- 
lisecond access speed of the full- 
height hard disk in the Compaq Por- 
table 286. However, the BYTE Disk 
Access benchmarks showed very lit- 
tle difference (see page 240). 

I found it hard to adjust to the 9-inch 
green phosphor screen, perhaps 
because I am used to a full-size moni- 
tor. I had to sit closer to the screen 
than 1 normally do. I also found that 
the adjustable feet that tilt the Por- 
table II upward were not sufficient on 
a standard-height desk. I finally 
placed the machine's documentation 
underneath the monitor to provide a 
better viewing angle. In addition, 
the two adjustable feet are so sharp 

that, with the weight of the entire 
system resting on them, they gouged 
my teak computer table. I recommend 
placing the system on a harder work 


The only software that comes with the 
Portable II is a demonstration disk 
that gives an animated, graphics-filled 
introduction to the system's features 
and options. Compaq sells MS-DOS 
version 3.1 for $85. In addition to the 
usual utilities and BASICA. MS-DOS 
version 3.1 includes several custom 
utilities. One utility controls the 
volume of the keyboard clicks; an- 
other regulates the speed of the pro- 
cessor. You can control these func- 
tions by pressing a series of keys, but 
the utilities allow you to control the 
functions by using batch files. The MS- 
DOS disks also include an extensive 
diagnostics program. The tests fully 
check out the system, but they use 
cryptic test numbers with no in- 
progress messages. 


The Portable II comes with an Opera- 
tions Guide. It is a bit short on detailed 
information, although it is expensively 
produced and full of photos. The sec- 
tions on upgrading the system are 
particularly well done. The Technical Ref- 
erence Guide may be available by the 
time you read this review. 

The MS-DOS manuals are complete 
rewrites of the IBM PC versions. 
They're much improved and do an ex- 
cellent job of explaining the in- 
tricacies of the more esoteric MS-DOS 


The Compaq Portable II is solidly con- 
structed and compatible with the vast 
majority of software that runs on IBM 
PC systems. Though far from forging 
any new technological ground, it's a 
fine example of how modular design 
can provide a compact, full-featured 
system that is easy to expand and 

Unfortunately, the price of the Por- 
table II is very high. But if you can af- 
ford the price and want the portabili- 
ty, you won't go wrong with the Por- 
table II. ■ 

OCTOBER 1986 • BYTE 241 




* MS-DOS 3.1 









* 640K RAM 





* 80286 CPU, SOCKET FOR 80287-8 











8/4.77 MHz CPU 

* MS-DOS 3.2 

* 640K RAM 


* ONE 5 1/4" FLOPPY 







...we don't make cheap computers. Mitac takes 
pride in maintaining some of the highest quality 
control and quality assurance standards in the 
industry. * 


...if you buy a famous name, there's a good 
chance you're buying Mitac anyway. Mitac has 
been supplying major computer and telecom- 
munications manufacturers with high-quality 
equiptment since 1974, producing over forty 
thousand systems annually. 


What Mitac is offering is this: Major brand quali- 
ty, a fair price, plus the support of Mitac's 
nationwide service network — we stand behind 
everything we make. That's the deal. If this 
makes good sense to you, do the sensible 
thing and call the toll-free number below for the 
name of the Mitac dealer in your area. 

* Each Mitac computer undergoes a total of seventy-two hours* burn-in and 
forty-eight quality auditing processes before release. 


When reliability is a decisive factor 



American Mitac Corp. 3385 VisoCt, Santa Clara. C A. 95054. TEL: (408) 988-0258. 988-7508; TOLL FREE: 1(800) 321-8344 TLX: 910-338-2201 MECTEL; FAX: 408-980-9742. 
Mitac Inc. No. 585 Ming Sheng E. Rd., Taipei, Taiwan, ROC. TEL: (02) 501 8231; TLX: 20261 MECTAC. 11942 TAIAUTO; FAX: 886 2-501-4265. 

IBM. PC. PC/XT, AND PC/AT are registered trademarks of International Business Mcichines, Inc. 
MS-DOS and GW BASIC are registered trademarks of Microsoft Corp 

242 BYTE • OCTOBER 1986 

Inquiry 203 


Four ^-inch Tape 
Backup Units 

by Malcolm C. Rubel 

Hard disk technology has 
progressed to such an extent 
that you can purchase a 
20-megabyte disk drive on 
an expansion card or a 140- 
megabyte disk drive for 
under $3 300. To enter this 
world without data backup is 
to invite disaster. A l /4-inch cartridge 
backup system provides one of the 
best alternatives for averting catastro- 
phe. I will compare two QIC (Quarter- 
Inch Committee) 60 drives, the Ifec- 
mar QIC-60 and the Sysgen Smart 
QIC-File, to the Tkllgrass TG-4060, 
which uses the PC/T (Personal Com- 
puter l^pe) standard, and the Alloy 
FT-60, which uses its own storage pro- 
tocol. Testing was done on an IBM PC 
AT with 512K bytes of memory and 
a Priam 60-megabyte hard disk with 
a 30-millisecond average seek time. 
For a look at an alternative to tradi- 
tional tape backup systems, see the 
text box 'Alpha Microsystems' Video- 
trax— A VCR Alternative?" on page 

Four backup systems 

that have a variety of features 

and capabilities 

on with the computer. The stiff piggy- 
back connector does not make good 
contact, so Sysgen supplies an extra 
cable to be used between the system 
unit and the faulty plug. I wish Sysgen 
had simply redesigned the plug in- 
stead of adding yet another cable to 
the back of my machine. 

The l&llgrass unit is the only one 
that is too large to sit on top of the 
computer next to the monitor. The 
Alloy and l^llgrass units use round 
cables instead of the thick and near- 
ly unbendable ribbon cables used by 
the other two units. 

I had no problems with any of the 
user's manuals. I found that I could 
start using each system with only a 
minimal time investment. 

Starting Up 

Setting up the tape backup units was 
not difficult. The biggest problem in- 
stalling the units was removing the 
five screws from the back of my IBM 
PC AT. All four units require a con- 
troller board, and all but the Alloy 
board will fit in a short slot. (Note that 
the Alloy system doesn't require the 
optional $195 controller card if you 
use it with a standard IBM PC or XT, 
as it will run on the external connec- 
tor of the floppy disk controller.) 

The power arrangement for the Sys- 
gen unit was less than satisfactory. As 
part of its automatic backup philoso- 
phy, the unit takes power from the sys- 
tem power outlet so that it is turned 


With the exception of the Sysgen unit, 
you can get a hard disk drive as an 
extra-cost option with your unit. Tfec- 
mar has a 20-megabyte option, Alloy 
offers 20- and 40-megabyte drives, 
and Tkllgrass has 25-, 35-, 50-, and 80- 
megabyte options. The Ikllgrass 
drives run from the same controller 
board as the tape unit, but the Alloy 
and Tfecmar systems require a sepa- 
rate card for their hard disks. Tecmar 
also offers its tape drive as an inter- 
nal unit for the IBM PC AT. 


All four systems provide for image 
backup/restore, file-by-file backup with 

the backup of modified files, 
and backup using wild cards, 
hidden files, and files in sub- 
directories as options. All the 
units except the Tkllgrass 
TG-4060 allow you to specify 
a date and back up only the 
files created or modified 
after that date. All the units allow you 
to get a directory listing of what is on 
the tape. 

With file-by-file backup, all the units 
allow you to restore either whole 
directories or specific files and re- 
create subdirectories if necessary. The 
Tecmar unit will restore an image 
backup to a different disk drive with 
bad sectors as long as the new drive 
has the same or a greater number of 
good sectors. 

All four units come with software 
that has a command language used 
to control the operation, and all but 
the T&llgrass unit also offer a menu- 
driven program. The menu programs 
are not suitable for anything but the 
simplest procedures, and I quickly 
went to the command language with 
each of the units. You can build batch 
files with each of the drives to make 
repetitive backup procedures easier. 
The Sysgen and Alloy drives even 
allow you to back up automatically at 
specified times, should you so desire. 
I would prefer writing a batch pro- 
gram to invoke a backup session 
before leaving my computer rather 
than having the session start just as 
I was about to do some time-critical 
work on a spreadsheet model. 

Malcolm C. Rubel is president of Performance 
Dynamics Associates (305 Madison Ave.. 
New York, NY 10165). He is also coauthor 
of The Performance Guide to Word 
Processing Software. 

OCTOBER 1986 'BYTE 243 




Smart QIC-File 



60-megabyte 1 A-inch tape 
backup drive 
(QIC 60 standard) 

60-megabyte 1 /4-inch tape 
backup drive (QIC 60 standard) 

60-megabyte 1 /4-inch tape 
backup drive, driven from 
floppy controller 


Tecmar Inc. 
6225 Cochran Rd. 
Solon, OH 44139 
(216) 349-1009 

Sysgen Inc. 

47853 Warm Springs Blvd. 
Fremont, CA 94539 
(415) 490-6770 

Alloy Computer Products Inc. 
100 Pennsylvania Ave. 
Framingham, MA 01701 
(617) 875-6100 

6 by 5 1 /4 by I6V2 inches 


7 by 4 by 16 inches 

2 by 6 by 10 inches 


IBM PC or compatible; 256K 
bytes of RAM (to be menu- 
driven); 192K bytes of RAM 
(command-driven); one open 
expansion slot 

IBM PC or compatible; 192K 
bytes of RAM; one open 
expansion slot 

IBM PC or compatible; 256K 
bytes of RAM 


20-megabyte hard disk drive; 
internal mount (for the IBM PC 


20- or 40-megabyte hard disk 
drive; controller card (for IBM 


130-page spiral-bound 
installation and operations 

170-page installation and 
operations manual, sized to fit 
IBM-type binder 

55-page spiral-bound 
installation and operations 





■' . *- ; I- '» 



All four units use the standard DC 
600A tape (600 feet long. M inch 
wide), and all hold roughly 60 mega- 
bytes of information. Except for the 
Sysgen unit, each unit's tape has to 
be formatted before use, and the Tfec- 
mar tapes have to be reformatted 
every time you reuse them. In con- 
trast, once you've formatted the 1&11- 
grass and Alloy tapes, they can be re- 
used indefinitely. 

Real-world Use 

Everyone's working environment is 
different, so I did not attempt to 
emulate any specific environments in 
my benchmark tests. You can more 
easily approximate the capabilities of 
the different units for your specific 
needs by interpolation of the results 
of the several benchmark tests. 
Unlike floppy disks, magnetic tape 

is a serial storage medium. It takes 
more time to get to a specific point 
on a tape than it does on a disk sim- 
ply because a greater distance must 
be covered. lust to get from one end 
of a DC 600 A tape to the other at 90 
inches per second (a fast speed for 
tape) takes 80 seconds, a long time 
for those who are used to access 
times measured in milliseconds. How 
each manufacturer deals with this 
makes a big difference in how its unit 
works in the real world. 

In storing data, two different ap- 
proaches are used. The Tecmar and 
Sysgen units conform to the QIC 60 
standard and write each backup ses- 
sion in a volume, which is headed by 
a directory for that volume. Each 
volume starts where the last one left 
off, so the time required to read or 
write data increases as a tape reaches 

its capacity. Because of this arrange- 
ment, I had to wait for three or more 
minutes to get directory listings from 
a tape that was 2 5 percent full. 

The l&llgrass and Alloy units, on the 
other hand, each use their own type 
of disk directory that contains all the 
necessary information at the begin- 
ning of the tape. Files can be directly 
accessed from there, saving a con- 
siderable amount of time. 

If you are only going to use tape as 
a protection against disk failure, the 
two QIC 60 units provide the best 
backup speed. The Ifecmar drive is 
superior to the Sysgen model for two 
reasons: It is much faster at backing 
up selected files (either modified or 
time-specified), and it will accom- 
modate 2 56 backup sessions on a 
single tape compared to the Sysgen 
unit's 64 sessions. 

244 BYTE- OCTOBER 1986 




60-megabyte 1 /4-inch tape 

Approximately 20-megabyte 

backup drive (PC/T standard) 

VCR tape backup unit 
(proprietary format) 

Tall grass Technologies 

Alpha Microsystems 


3501 Sunflower Ave 

11100 West 82nd St 

Santa Ana, CA 92704 

Overland Park, KS 66214 

(714) 957-8500 

(913) 492-6002 

5 1 A by 9 by 13 1 A inches 

4 1 /2 by 17 by 14 inches 

IBM PC or compatible; 256K 

IBM PC or compatible; 256K 

bytes of RAM; one open 

bytes of RAM; one open 

expansion slot 

expansion slot 

25-, 35-, 50-, and 80-megabyte 

Customized VCR unit 


154-page installation and 

150-page installation and 

operations manual in three-ring 

operations manual, loose pages 


to fit IBM-type binder 



$595 for controller board and 

$1395 for complete system 

If you lack the discipline to type BU 
to initiate a backup batch file, the Sys- 
gen unit with its automatic backup 
feature is probably better for you. If, 
however, you do not want to use the 
automatic backup procedures, you 
have to get rid of the AUTOEXEC.BAT 
file that the installation creates and 
figure out how to invoke the backup 
program for your needs. Sysgen 
assumes that everyone will want to 
back up their data automatically, and 
the accompanying information on 
manual operation is sparse. 

The Tkllgrass unit uses the PC/T pro- 
tocol. The system operates more like 
a disk drive than a tape unit. The 
directory is at the beginning of each 
tape volume and, unlike the other 
units, when you update an existing 
file, the older version of the file is 
overwritten. This makes restoring a file 

from tape much easier, since only the 
most recent update is on the tape. 
The l&llgrass software allows you to 
get directory listings of your hard disk 
drive and the tape volumes; make, 
change, and remove directories; re- 
name and delete files in existing tape 
volumes and drives; print a file; and 
show directory trees. These opera- 
tions, not unlike their DOS counter- 
parts, make PC/T a more flexible tape 
standard than the others I tested. 
| Editor's note: Tallgrass has recently an- 
nounced version 2. 1 of its tape backup soft- 
ware, which lets you run applications from the 
tape in the event of a hard disk crash. The 
software evaluated in this review is version 


The Tfecmar QIC-60 does not allow 
you to stop a backup in progress. If 

you do stop the backup procedure, 
you have to erase the entire tape 
before you can back up additional 
data. Also, you cannot delete data 
selectively; instead, you must erase 
the entire tape. This means that you 
must use two tapes to ensure data 
security. The software looks for COM- 
MAND.COM in drive A, which is a 
strange place to look when you have 
a hard disk system. In addition, the 
fan on the Tkcmar unit is the noisiest 
of the systems 1 tested. 

The Sysgen Smart QIC-File, with its 
64-session limitation, may cause 
problems in some circumstances. I 
did not like the way the automatic 
backup software worked. The soft- 
ware is designed to be foolproof, but 
it has too many places where a per- 
son can cause damage to the system. 
For instance, if you have the wrong 
tape in the drive when you turn on the 
machine, the backup program asks 
you if you want to delete all the infor- 
mation on the tape so that the tape 
can be used. If you mistakenly say yes, 
you could delete the only copy of in- 
formation just removed from disk to 
tape. Like the Tfecmar unit, Smart QIC- 
File is slow at showing directories. 

The Alloy FT-60 is not speedy as the 
benchmark tests show. This is 
because the unit performs a separate 
verification pass over the data during 
the backup procedure. Restoring data 
using wild cards is even slower 
because the search continues to the 
end of the recorded tape for more 
files. When you restore a single file, 
the search stops at the first occur- 
rence of the file. If you have a later 
version of that file, it will not be 
restored unless you specify the prop- 
er backup session number. 

As with the QIC 60 units, the Alloy 
FT-60 does not let you delete files 
selectively; you must erase all data on 
the tape. Also, the unit will not let you 
restore files to a different drive. For 
example, a file backed up on drive C 
cannot be restored directly to drive D. 

The biggest problem with the 1&11- 
grass TG-4060 is that you are limited 
by directory size to 509 files in a tape 
volume. This is not as bad as it seems 
because a tape can be used either as 
a single volume of 60 megabytes or 


OCTOBER 1986 • BYTE 245 


as four separate volumes of 1 1 mega- 
bytes each, with a fifth volume of 16 
megabytes. The directory size limita- 
tion (if it exists for your situation) can 
be dealt with by carefully selecting 
directories and subdirectories to be 
backed up in each of five tape 
volumes. A 2 500-plus file limit is far 
less restricting. 

Data Integrity 

The only data problem I encountered 
was with the Alloy FT-60. The unit 

blocked off bad sectors when it for- 
matted the tape (just as DOS formats 
a floppy disk), but during my first 
practice session the tape verification 
pass indicated there were bad blocks 
within some files and that the system 
was rewriting the suspect files at the 
end of the tape. When I checked the 
rewritten files, I found that although 
the filenames were right, the actual 
files had not been copied; two 
duplicates of the last file in the direc- 
tory had been written instead. Since 

the newly found bad blocks were now 
reserved, I did not get this error again. 
Five phone calls to Alloy finally put 
me in contact with the technical peo- 
ple, who had no explanation. 

The other three units performed 
without a hitch through all the testing. 
The Tecmar and Sysgen units imme- 
diately rewrote the data block if there 
were any problems. The l^llgrass unit 
provides data security through auto- 
matic error correction, a three-part 
data block structure that includes a 

Alpha Microsystems' Videotrax ~ 
A VCR Alternative? 

Alpha Microsystems' Videotrax is 
an alternative to traditional tape 
backup systems. Videotrax comes in 
two parts: a controller card and a VCR 
unit. You can buy the controller card 
separately for $595 and use your own 
VCR unit, which you must operate 
manually, or you can purchase the 
system complete with a VCR for $1395. 

The idea of being able to store up 
to 80 megabytes of information on a 
$5 video cartridge is very appealing 
Unfortunately, the appeal and the reali- 
ty are two different things. 

To begin with. Alpha Microsystems 
acknowledges that you should record 
at the fastest possible tape speed to 
ensure better data integrity. The com- 
pany also gives a specific warning 
about using the ultra-long-playing 
mode. A two-hour tape playing at nor- 
mal speed and making a file-by-file 
backup with the data security default 
of 10 rewrites (see below) will hold be- 
tween 10 and 30 megabytes of data 
depending on the number of files you 
are backing up. The greater the 
number of files, the lower the total 

storage capability of the unit will be. 

Videotrax's menu-driven backup 
software allows you to back up several 
drives or directory sets in a single ses- 
sion, but you can record only one 
backup session on a tape. When you 
use the tape again, the unit writes over 
existing information. 

The unit compensates for the in- 
herent unreliability of VCR recordings 
by writing each data block from 4 to 
40 times with a default value of 10 
rewrites. The more rewrites there are, 
the less information a tape will hold 
but the less chance you will have of any 
hard (unrecoverable) errors. 

Compared to traditional tape backup 
units, Videotrax is slow. I ran the 
benchmark tests on the Videotrax unit 
using the same evaluation files used for 
the four 14 -inch units. The results are 
shown in table A. Compare these times 
to those for the tape backup units in 
table I. 

Although the Videotrax unit will back 
up modified files, it will not do this on 
the same tape as the master set. You 
have to use a separate tape for this. 

Table A: Benchmark test results for the Videotrax backup unit, 

Backup time 

Times are in 
Restore time 

200 1K-byte files 

200 10K-byte files 

20 100K-byte files 

2 1000K-byte files 

422 files (6.2 megabytes) 











With this approach you can quickly run 
up a big tape bill. 

The Videotrax software offers you 
the option of verifying that the infor- 
mation you have written to tape can 
be read, but this option does not ac- 
tually compare the tape to the disk 
files. In additon, using it increases the 
backup time by a factor of two. 

To back up 80 megabytes of data 
with Videotrax. you would need just 
a few large files and record on long 
play. The backup session would last 
four hours. An alternative would be to 
reduce the number of data rewrites, 
but that would increase the probability 
of hard errors. 

When you start using a new tape, the 
Videotrax manual strongly advises you 
to certify the tape. Tape statistics at the 
end of the certification include hard er- 
rors and soft (recoverable) errors. Data 
will be lost if there are hard errors. It 
takes four hours to certify a 
120-minute tape. 

Alpha Microsystems also suggests 
that you calibrate the VCR unit before 
using it. to optimize performance. The 
calibration process takes two and a 
half hours but is worthwhile. If you do 
not take the time to do this, or if you 
are using your own VCR, you will have 
to manually work the controls to find 
files to restore. 

In conclusion. I cannot recommend 
the Videotrax unit as an alternative to 
traditional tape backup units because, 
at $l 395. the system is not much less 
expensive than many of the better 
(and faster) alternatives. 

246 BYTE* OCTOBER 1986 


parity block to allow for automatic re- 
construction of unreadable data. The 
program also allows for a verification 
pass on all backups. If you specify this 
option, the times are doubled. 

Of the units tested, the l^llgrass unit 
seemed to have the best data securi- 
ty system. Other than the Alloy prob- 
lem. I experienced no data errors in 
any of my testing. 

Standards and Compatibility 

Probably the only thing that can be 
said about standards and compatibili- 
ty is that they do not exist. The QIC 
standard deals only with how data is 
written onto a tape, not with how that 
data is read once there. The marketing 
people at each company differentiate 
their product from the others through 
software features that make the data 
recorded on their unit functionally 
useless on a different machine. The 
Sysgen tape, for example, was unread- 
able in the Tkcmar unit and vice versa. 

The Alloy FT-60 uses its own type 
of directory and formatting to store 
and retrieve data. The PC/T standard 
on the l^llgrass TG-4060 stores 
roughly the same 60 megabytes per 
tape as the Alloy unit, but it uses 1 1 
tracks and a completely different data 
format. As the PC/T protocol is more 
like an operating system, a tape for- 
matted on one machine should be 
able to run on any other that uses this 
system, but it probably won't. 

Beyond these standards lie many 
others. Recently the QIC approved a 
standard for 120 megabytes on a DC 
600A cartridge. There are new stan- 
dards for DC 1000 tapes and for back- 
ing up using floppy disk controllers. 
Some companies have "proprietary 
standards" (whatever that means). 

If you are interested in moving data 
from one tape unit to another (i.e., 
using the same tapes in two different 
units), you would probably be wise to 
buy two or more units of the same 
make and model. It would also be 
wise to make sure that the tape is 
readable between the units, since 
things like head alignment might still 
give you data-reading problems. 

Benchmark Procedures 

A series of five different sets of files 
were used to perform the benchmark 

Table 1: Results of benchmark tests performed 

on the four tape backup 


Times are in minutes.seconds. 


Sysgen Smart 







Tape speed (inches per second) 





Number of tracks 





Tape format time 





200 files, 1K byte each 

Back up 










Back up changes 





200 files, 10K bytes each 

Back up 










Back up changes 





20 files, 100K bytes each 

Back up 










Back up changes 





2 files, 1000K bytes each 

Back up 










Back up changes 





422 files, 6.2 megabytes total 

Back up 










File access times 

Minimum time to restore 1 file 





Maximum time to restore 1 file 





tests. The five file sets do not attempt 
to model any specific use, but were 
constructed to give meaningful data 
points that each individual can inter- 
pret for a specific situation. 

Each of the first four file sets con- 
tained identical files of IK, 10K, 100K, 
or 1000K bytes. The last set consisted 
of the first four sets combined. The 
first and second sets contained 200 
files each, the third contained 20, the 
fourth had 2, and the last set had 422 
files, for a grand total of 6.2 mega- 

I performed three tests on each of 
the file sets. Each set of files was 
backed up in order on a single tape 
in separate operations. The hard disk 
files were then erased and the file sets 
were individually restored from tape. 
Every tenth file was then modified by 
I byte, and the backup tests for each 
of the modified data sets were then 
performed on the same tape. The last 
set of files (6.2 megabytes) was not 
tested for modified files. 

The minimum time to restore a file 
was the time that it took to restore the 
first file on the tape. The maximum 
time was determined through trial and 
error. See table l for complete bench- 
mark results. 


The environment in which you use a 
tape backup unit really determines 
which of the four units reviewed here 
would be most suitable for your 
needs. For raw speed, the Tecmar 
QIC-60 unit is the winner. If a system 
is to be operated by inexperienced 
users, the Sysgen Smart QIC-File's 
automatic backup feature might make 
it a better choice. If money is a serious 
concern, the Alloy FT-60, while short 
on speed, is the least expensive unit. 
My preference, however, for all- 
around flexibility and data integrity, is 
the Tallgrass TG-4060. While it is not 
the fastest unit, it offers more capa- 
bilities for more varied operating en- 
vironments than the other units. ■ 

OCTOBER 1986 • BYTE 247 


is the best choice 

in PC monitors. 

When you're looking for a personal 
computer monitor, look at 
Princeton Graphic Systems. Our 
growing family of high quality 
personal computer 
monitors delivers 
brilliant colors, 
high resolution, 
and dependability. 
Whether you're 
designing sophisti- 

cated business graphics or 
number-crunching a financial 
spreadsheet. That's why Princeton 
is number one in the minds of more 

and more personal computer 

owners every year. 
For the very best in PC monitors, 

the choice is clear: Pick the com- 
pany that's at the 
top. Princeton 

-i t 

compatible monitor gives 
you 64 vivid colors. Extra 
sharp text and graphic 
displays. The finest dot 
pitch (.28mm) of any IBM- 
compatible enhanced 
monitor. Nonglare screen. 
Fully compatible with 
IBM's™ Enhanced Graphics 
Adapter (or equivalents). 

SR-12P. Top-of-the-line 
analog color monitor 
features ultra high resolution 
(640x480). 4 ,096 colors 
for superb graphics. The 
finest dot pitch (.26mm) of 
any PGC-compatible 
monitor. Laminated nonglare 

HX-12. High resolution RGB 
color monitor with .31mm 
dot pitch gives you better 
graphics, better text than 
IBM's Color Monitor (5153). 
Nonglare screen. Voted 
"Best in the World" two 
years running in PC World's 
"World Class PC Contest". 

SR-12. Super high resolu- 
tion RGB monitor with a 
.31mm dot pitch. Compati- 
ble with Sigma Designs Col- 
or 400 board and others. 
Gives you 400 lines of 
resolution. Nonglare screen. 

All monitors come with free data and power cables. 

MAX-12. High resolution 
amber monitor. When used 
with an IBM-compatible 
monochrome adapter 
delivers 720 x 350 resolu- 
tion. With an IBM- 
compatible color adapter, 
640 x 200 resolution with 15 
shades of amber. The 
monitor automatically ad- 
justs to either card. 

HX-9/HX-9E. Compact nine- 
inch high resolution RGB 
monitor. Perfect for worksta- 
tions where space is at a 
premium. Both feature a .28 
dot pitch and an etched dark 
glass screen. Eco- 
nomic features like a built- 
in tilt/swivel base, non- 
glare screen, and a built- 
in green/amber switch. HX-9E 
is compatible with IBM's EGA 
(or equivalents). 

Visit your local computer store today and ask about our full 
line of high resolution color and monochrome monitors. 
Monitors that live up to the Princeton Graphic Systems 
tradition of quality, performance, and value. __„ w ^ 


Princeton Graphic Systems, 601 Ewing Street, Bldg. A, 
Princeton, NJ 08540; (609) 683-1660; TLX 
821402PGSPRIN; (800) 221-1490, ext. 1104. 

IBM is a trademark ot International Business Machines. Inc. Color 400 is a trademark 
of Sigma Designs. Inc. QuadEGA-t- is a trademark of QuadramCorp. Compaq is a 
trademark of Compaq Computer Corp. 

248 B YTE • OCTOBER 1986 



Inquiry 241 



by Robert J. Schalkoff 

The muLISP-86 LISP devel- 
opment system is the suc- 
cessor to muLISP-83 (see 
"LISP for the IBM Personal 
Computer" by Jordan Bortz 
and John Diamant, July 1984 
BYTE) and the short-lived 
muLISP-85. In fact, muLISP- 
86 is very similar to muLISP-85, the 
principal differences being that 
muLISP-86 has a revised and updated 
manual and an optional compiler. It 
is worth noting that muLISP-86 is pro- 
duced by Soft Warehouse, but it is 
identical to Microsoft LISP. This review 
looks at muLISP-86 as compared to 
muLISP-83 and as a subset of Com- 
mon LISP. 

System Operation 

You invoke the muLISP-86 develop- 
ment system from DOS via the com- 
mand A>mulisp <sys-config>. 
where sys-config is the name of a sys- 
tem file containing your customized 
development environment (i.e., the 
editor, Common LISP library func- 
tions, the help facility, and perhaps 
the debugger). The muLISP-86 system 
contains over 300 primitively defined 
functions and control variables that 
comprise the so-called pure LISP. 
Function and macro libraries, which 
consist of additional Common LISP 
and InterLISP subsets, respectively, 
are included as files of pure LISP 
source code. The Common LISP li- 
brary contains over 60 additional 
functions. Thus, you can achieve 
either Common LISP or InterLISP pro- 
gramming functionality by loading the 
appropriate library files. For example, 
the LISP-assignment functions set and 
setq are primitive functions in 
muLISP-86 and are loaded into user 
memory when you execute the MU- 
LISP.COM file. The extremely general 
and useful sett function, on the other 
hand, is contained in the Common 

A customizable LISP 

with recent enhancements and 

an optional compiler 

LISP library (COMMON.LSP), which 
you have to load separately. In addi- 
tion, to implement Common LISP ar- 
rays you have to load both the Com- 
mon LISP library and a separate li- 
brary of array-manipulation utilities 

You can easily customize the 
muLISP-86 development system to 
suit your needs. For example, you 
could read the editor and an appro- 
priate subset of one or more library 
files (your own or those supplied with 
the program) into the muLISP en- 
vironment and then save them as one 
.SYS file that you can load more 
quickly thereafter. By not loading and 
saving the entire set of library files, 
you can save memory for program de- 

The updated muLISP-86 develop- 
ment system contains a useful win- 
dows feature. Following the opening 
menu, you can split the screen into 
two windows and observe LISP 
source code in one window, the editor 
window, and the muLISP-86 inter-" 
preter (the so-called read-eval-print 
function) in the other window. A single 
keystroke lets you invoke the inter- 
preter. To get from the eval loop to the 
editor, you simply hit Return at the in- 
terpreter prompt. The windows are 
particularly useful for tracing func- 
tions and developing programs incre- 

A consequence of this new editor- 
based development system (in con- 
trast to the menu-driven muSTAR de- 
velopment system that accompanied 
muLISP-83) is that to achieve incre- 


mental program develop- 
ment you have to edit func- 
tions as separate files, or 
create a continuously ex- 
panding file, and you must 
explicitly invoke the trace 
and debug facilities (as de- 
scribed below). For learning 
prefer muLISP-83's menu- 

driven environment. 

The muLISP-86 Editor 

You can configure the muLISP-86 
editor to look like either WordStar or 
(for those who have used one of the 
MacLISP variants) EMACS While both 
muLISP-86 configurations represent 
subsets of the full editors, they never- 
theless support the functions you are 
most likely to use. You can also cus- 
tomize either editor to map familiar 
keystrokes into editing functions. 

Furthermore, both muLISP-86 edi- 
tors have several handy extensions 
that aid in editing LISP symbolic ex- 
pressions. One extension is for the s- 
expression, which is the basic entity 
manipulated by LISP and essentially 
consists of atoms and lists. The edi- 
tors' list-structure commands are key- 
stroke combinations that move the 
cursor around s-expressions and lists 
in the same way that WordStar and 
EMACS move the cursor around char- 
acters, words, and lines. For example, 
in the WordStar-like editor mode, Esc- 
D and Esc-S move the cursor forward 
one s-expression and backward one 
s-expression, respectively Other key- 
stroke combinations let you delete 
and evaluate s-expressions. Since the 
majority of LISP program editing and 

Robert J. Schalkoff (Department of Electrical 
and Computer Engineering, Clemson Univer- 
sity, Clemson, SC 29634-0915) is associate 
professor at Clemson University, where he con- 
ducts research in image processing and ar- 
tificial intelligence. 

OCTOBER 1986 • BYTE 249 




Soft Warehouse Inc. 

3615 Harding Ave, Suite 505 

Honolulu, HI 96816 

(808) 734-5801 


Programming language 


IBM PC, XT, AT, PCjr, or compatible; MS- 
DOS-based systems; 128K bytes of RAM 
minimum (256K bytes recommended); 
one floppy disk drive (two floppy disk 
drives recommended) 


400-page muLISP-86 reference manual; 
Soft Warehouse Newsletter, 3 issues 


Interpreter $250 

Optional compiler $150 

Interpreter with optional compiler $350 

debugging involves modification of s- 
expressions, this editing utility is quite 

The muLISP-86 editor also provides 
two other handy features for creating 
and modifying LISP code. One is the 
superparens (]), which automatically 
inserts closing parentheses and 
relieves you of keeping track of the 
number of opening parentheses. This 
feature is often found in larger LISP 
implementations and, while conve- 
nient, can be dangerous since it elim- 
inates the need for you to check the 
s-expression structure in determining 
the number of closing parentheses. 

Another handy feature is blinking 
matching parentheses. In the edit 
mode, moving the cursor to a left 
parenthesis causes the corresponding 
right parenthesis, if it exists, to blink 
(and vice versa), thus providing an im- 
mediate visual display of the contents 
of the s-expression. You can use this 
feature to quickly identify an incorrect 
program-control structure such as a 

missing parenthesis or one that is in- 
correctly placed. 

The revised editor in muLISP-86 
comes up in the WordStar-like insert 
mode as opposed to the muLISP-83 
editor, which assumed overwrite 
mode. If you forgot to change the 
muLISP-83 editor mode prior to edit- 
ing (as I often did), you could over- 
write large amounts of code before 
realizing the effect. Other changes are 
not as welcome. For example, the 
muLISP-86 editor does not retain the 
pretty-print feature of its predecessor. 
This feature displays the source code 
with the control structure delineated 
by indentation and provides a quick 
visual display of the program struc- 

Error Handling and 
Program Termination 

The muLISP read-eval-print error 
handler is called the Break Package. 
When the interpreter discovers an 
error, it displays a short message such 




80286 IBM Compatible 

• 6 MHz, 8 MHz, or 10 MHz Keyboard Switch 

• 5 CHIPS SET-(Lower Heat. Higher Quality) 

• or 1 Wait State 

• 1 MB Memory 
On Board Battery 

80287 Socket Ready 

— 5VLS1 


i80286 80287 

We are the manufacturer. 

WiseTEK International, Inc. 
513 Valley Way 
Milpitas, CA 95035 


8088-2 IBM-XT Compatible 

4.77 MHz or 8 MHz Keyboard Switch 

4 Layer PC Board 

640K Memory 

8087 Socket Ready 

See us at 


November 10-14, 1986 

Riviera Hotel 

Las Vegas, Nevada 

Booth #8421 


Distributors, Dealers, 
OEM Welcome 

TEL: (408) 263-1237 
FAX: (408) 263-1870 

250 B YTE • OCTOBER 1986 

Inquiry 329 


as "File not found" and then prompts 
you to type continue, break (tem- 
porarily suspend program execution 
and call the read-eval-print loop on 
the next level down), abort (abort and 
return to the most recent read-eval- 
print loop), top-level (abort and return 
to the top-level executive driver loop), 
restart (initiate a new muLISP sys- 
tem—the approach to use when all 
else fails), or system, which returns 
you to DOS. 

Debugging Facilities 

In addition to the Break Package, 
muLISP-86 provides a comprehensive 
set of functions to allow efficient de- 
bugging. Foremost among these is the 
trace function. This function indicates 
the level of the function call and the 
names and bindings of the function 
arguments at this level. The trace 
function also lets you redirect the out- 
put to a file. This is often necessary 
due to the voluminous amount of out- 
put of some programs where several 
functions may recursively call each 

The muLISP system follows the 
Common LISP convention of delineat- 
ing single-line comments with one or 
more semicolons. If you wish to have 
multiple-line comments, you can use 
the primitive function comment, 
which holds the comment by inhibit- 
ing the evaluation of its arguments. 

Distribution Media 

The distribution disk for MS-DOS sys- 
tems includes the executable muLISP 
interpreter file (MULISP.COM); the 
editor (EDITLSP); a help file 
(HELP.LSP); library files containing 
InterLISP and Common LISP func- 
tions, macros, and special forms (IN- 
STRUCTUR.LSP); a six-lesson inter- 
active tutorial (MULISPI.LES to MU- 
LISP6.LES); a .COM to .EXE file con- 
verter (C0MT0EXE.COM); the source 
code for the debug and trace facilities 
(DEBUG.LSP); some sample programs 
such as the Tower of Hanoi; and a file 
for function redefinitions to achieve 
compatibility with muLISP-83 (MU- 
LISP83.LSP). This file is handy since 
muLISP-83 contains a large number of ' 
function names that are incompatible 
with MacLISP and Common LISP. The 

optional compiler is written in muLISP 
and distributed on a separate disk 
consisting of four files. 

The compact size of the muLISP-86 
system (MULISP.COM, the editor, and 
the Common LISP library files take a 
little more than I OOK bytes) makes it 
suitable for use on floppy-disk-drive- 
based systems. This is in contrast to 
other LISPs such as Golden Common 
LISP, which comes with five distribu- 
tion disks and practically necessitates 
a hard disk drive. 

The muLISP-86 disk is not copy- 
protected, in contrast to Golden Com- 
mon LISP, which contains a sophisti- 
cated copy-protection scheme and a 
corresponding installation and de- 
installation procedure. In fact, the 
muLISP-86 license agreement seems 
to foster the distribution of the prod- 
uct on a trial basis by stipulating that 
"the software shall be run on at most 
five computers residing in a single 
building or facility" and that the "end 
user is authorized to allow temporary 
use of the software by the end user's 
family employees, consultants, or 

Common LISP Compatibility 

Although muLISP-86 does not at- 
tempt to implement the entire LISP 
standard, this is not a serious limita- 
tion since it is neither practical nor 
necessary for a useful LISP develop- 
ment system that is used on a per- 
sonal computer to adhere strictly to 
this standard. In fact, this is currently 
impossible with an interpreter. The 
muLISP-86 system implements a sub- 
set of the advanced control constructs 
that are popular in Common LISP For 
example, you can replace the histori- 
cally standard cond function with if 
functions that more closely resemble 
other high-level languages. In muLISP- 
86, if is a primitively defined special 
form. The COMMON.LSP library file 
supports other popular constructs 
such as the when macro and the 
more advanced let and let* (the se- 
quential version of LET). In addition, 
muLISP-86 supports user-written 
macros and some advanced Common 
LISP constructs such as defstruct (in 
the STRUCTUR.LSP library file). Unfor- 
tunately, other constructs such as 
packages and block are not imple- 

mented in muLISP-86. 

Like most LISP implementations (in- 
cluding Golden Common LISP), 
muLISP-86 is dynamically scoped (i.e., 
the value bound to a variable is the 
one most recently assigned to it). Fur- 
thermore, in muLISP-86, variables 
bound to functions (i.e., appearing in 
the function definition as formal pa- 
rameters) become local variables 
within the scope of that function. 
Otherwise, variables are considered 
global in scope; therefore, any assign- 
ments made during the execution of 
a function remain in effect after the 
function is exited. This is known as a 
side effect and is not necessarily bad. 

Disk Space, Memory Usage, 
and Garbage Collection 

Garbage collection (elimination of 
data entities that are no longer useful, 
thus conserving memory space) is 
automatic and quick, taking about 
one second. The muLISP-86 system 
provides a primitively defined func- 
tion (reclaim) and a corresponding 
control variable to let you monitor the 
frequency of garbage collection, mem- 
ory allocation, and the amount of free 
memory. Checking this is sometimes 
useful when a program's execution 
seems to be slow, since the system 
may be consuming the majority of its 
time in garbage collection, an unde- 
sirable process known as thrashing. 
The muLISP-86 system, like muLISP- 
83, is fast due to its use of distilled 
code (d-code). The use of efficient 
storage techniques and d-code makes 
it possible for you to load the muLISP 
interpreter, a choice of editor, the 
Common LISP library, and the debug 
routines into RAM and still have am- 
ple space for program development. 
On my 2 56K-byte system, even with 
space allocated for the resident por- 
tions of DOS 2.10, the reclaim func- 
tion indicated that I had over 100K 
bytes free, a substantial amount of 
space for program development. If 
this amount of memory was insuf- 
ficient, 1 could have extracted the 
functions I normally use from the 
Common LISP and debug libraries 
and saved them in a new smaller li- 
brary that would take up less of the 
system RAM. This is in sharp contrast 


OCTOBER 1986 • BYTE 2 51 


to the documented operation of 
Golden Common LISP, wherein the 
system and editor leave only 20K 
bytes remaining for program develop- 
ment in a 512K-byte system. 


The muLISP-86 system accepts input 
from either the keyboard or a disk file 
via the rds (read select) function. The 
system also provides several typical 
printing functions (print princ, and 
prinl) and the ability to handle string 
variables. The system supports both 
list and dot notation. 

The Compiler 

Program development in a language 
such as LISP normally proceeds in in- 
terpreted mode with the incremental 
development and debugging of func- 
tions. Once these functions are fully 
debugged, however, you can use the 
optional muLISP-86 compiler to sig- 
nificantly improve the execution 
speed of application programs by 
transforming functions into native 
machine code. 

You can also use the muLISP-86 
compiler to individually compile user- 
defined functions (the so-called "in- 
cremental compiler" mode). Alter- 
nately you can use the compiler in a 
file compiler mode where all the func- 
tions in a file or set of files are com- 
piled. Either mode requires that you 
load the compiler source code, which 
takes additional memory. On my sys- 
tem, the loading of the incremental 
compiler required approximately an 
additional 45 K bytes of RAM. 


The muLISP-86 documentation is a 
slightly revised version of the muLISP- 
85 documentation. It consists of a 
single binder with approximately 400 
pages. It covers the major system fea- 
tures, muLISP tutorials, data struc- 
tures and memory management, a 
comprehensive summary of the 
muLISP-86 functions, the debugger 
and editor, the optional compiler, and 
the machine-level access functions. 
The documentation is a welcome re- 
vision of earlier counterparts. The 
operation of primitively defined 
muLISP functions is well documented. 
The manual also contains (as does 

tutorial lesson number 3) a good dis- 
cussion of the concept of a cons con- 
struct for internal computer represen- 
tation of lists and the relationship of 
lists to binary trees. For quick refer- 
ence, the manual has separate in- 
dexes for concepts and muLISP func- 
tions. A particularly good feature of 
the documentation is an appendix 
that details source file conversion 
from muLISP-83 to muLISP-86. 

The muLISP-86 tutorial is also 
similar to that furnished with muLISP- 
83. Topics covered include the rela- 
tionship between b-trees and lists, 
defining functions, list manipulation 
and associated functions, control 
structures, the use of recursion, and 
graphics. Purchasers of muLISP-86 
also get a three-issue subscription to 
the Soft Warehouse Newsletter. 


In contrast to earlier versions, muLISP- 
86 provides a useful on-line help facili- 
ty for a large number of muLISP's 
primitively defined functions. After 
loading the help file, you simply in- 
voke the help function with a par- 
ticular function name as the argu- 
ment, whereupon the system returns 
the particular function's arguments, 
type, and the number of the page in 
the manual that contains a more 
detailed reference. 

The muLISP-86 system provides ac- 
cess to IBM PC hardware via primitive 
functions that let you read and write 
directly to absolute memory ad- 
dresses (memory), execute an inter- 
rupt (interrupt), read or write from an 
8086/8088 port (portio), and suspend 
the muLISP system to load and ex- 
ecute another program (execute). The 
execute function even lets you pass 
a string of arguments to the other pro- 
gram, expressed as an optional argu- 
ment to the LISP function. This is ex- 
tremely useful in artificial intelligence 
applications, such as speech recogni- 
tion or image processing, where the 
muLISP system relies on other pro- 
grams (possibly written in other lan- 
guages) to provide some degree of 

The muLISP-86 system supports in- 
teger and real-number data types. It 
currently does not support an 8087 
coprocessor. The editor (and the en- 

tire muLISP-86 development system) 
appears to work fine with keyboard in- 
tercept and memory-resident pro- 
grams such as SideKick. 

System Requirements 

The muLISP-86 system is designed to 
run on an IBM PC, XT. AT, or PCjr with 
either a monochrome or graphics dis- 
play. Soft Warehouse claims that the 
system also runs on other MS-DOS 
computers. I was able to run muLISP- 
86 successfully on an NCR PC4 with 
a monochrome display and also on an 
AT&T PC 6300. 

The documentation states that you 
need a minimum of 128K bytes of 
memory, with at least 2 56K bytes rec- 
ommended. Note that muLISP-86 can 
take advantage of up to 51 2K bytes 
of installed memory, which may be a 
useful feature in large program devel- 

Finally you can run muLISP-86 with 
one disk drive, but the company rec- 
ommends that you use two drives to 
avoid swapping disks after loading the 
system. The compact size of a mini- 
mal system, however, makes muLISP- 
86 suitable for use on the IBM 


The muLISP-86 system represents 
some improvement over muLISP-85 
and a significant improvement over 
muLISP-83. Its major strength is its 
suitability for use within the con- 
straints of the microcomputer en- 
vironment (i.e., with limited memory 
and floppy disk space). The system is 
reasonably user-friendly and might be 
considered a viable alternative to 
other LISP development systems for 
the IBM PC such as Golden Common 
LISP and the public domain XLISP. 
A particularly good use for muLlSP- 
86 would be for educational purposes 
and situations where absolute Com- 
mon LISP compatibility is not essen- 
tial and cost-effective LISP program- 
ming capability is desired. While 
muLISP-86 does not provide all the 
user-friendliness and functionality of 
the more comprehensive mainframe 
and dedicated LISP machine environ- 
ments, it represents a significant en- 
hancement over muLISP-83. It is well 
worth a serious look. ■ 

252 B YTE • OCTOBER 1986 


Computers and Communications 

Your first color monitor should 
be good enough to be your last, 

NEC introduces the only 
color monitor you need. 
Superb resolution plus 
MultiSync for across-the- 
board compatibility with all 
three PC graphics boards 
made by IBM,® for business 
graphics, CAD/CAM, 
computer art, and text. 


Now there's one high 
fc resolution color 
f* monitor that does 
s things your way. 
The MultiSync™ 
monitor from NEC. 

It gives you the 
best color resolu- 
tion available at 
the price. 
• Compatibility with the IBM 
Professional Graphics 
Adapter, the IBM Enhanced 
Graphics Adapter, and the 
IBM Color Graphics Adapter. 




The Intelligent Monitor 

r — IT 

- -.. , — — - 

bility with 
the IBM® 




jBLItll \ 




Br ■•■ 


• MultiSync, the NEC 
feature that automatically 
adjusts to color adapter 
board scanning frequencies 
from 15.75 KHz to 35 KHz— 
suggesting the possibility 
that the MultiSync monitor 
might be compatible with all 
color graphics boards that 
are fully compatible with the 
IBM PC, PC/XT, and PC/AT, 
now and in the future. 

• Full implementation of 
high resolution graphics 
software for business and 
other applications, now 
and in the future. 

• And color capability 
limited only by the board 
being used. 

See Things Our Way 

Until now, you had to choose 
different color monitors for 

compatibility with all three 
PC color graphics boards 
made by IBM. With so many 
board and monitor configura- 
tions, folks didn't know which 
way to look. 

The new MultiSync color 
monitor gives you unique 
compatibility. As well as TTL 
and analog color. With 7 
switchable text colors. And 
resolution up to maximum 800 
horizontal dots and maximum 
560 vertical lines, on a large, 
13" diagonal viewing area. 

I ^ All from NEC, a 

\y" v name respected around 
^s the world for advanced, 
'J}\ reliable products backed 
by nationwide service. 



bility with 
the IBM® 

It's the one color monitor that 
does everything your way. 

bility with 
the IBM® 

But why talk more about it? 
Visit your nearest dealer and 
see a graphic demonstration 
of the new NEC MultiSync 
monitor's capabilities. Then 
draw your own conclusions. 

For information dial 


Computer Products Division 
1255 Michael Drive 
Wood Dale, IL 60191-1094 


Inquiry 2ll 

OCTOBER 1986 -BYTE 253 

Book your trip 
& from start to finish. 

All on your own PC. 

Now you can get quick information and immediate 
resenmtions for flights, hotels and rental cars with EAASY 
SABRE, the American Airlines personal reservations system. 

EAASY SABRE lets you look directly at schedules and 
fares, 24 hours a day On any type of PC that has a modem 
or on any kind of communicating terminal. And, all the 
help you need is available on line. 

This special service will show you flights for over 650 
airlines worldwide. And the quickest routes to almost 
any place you want to go. 

It will also show you more than 13,000,000 fares. Our 
exclusive Bargain Finder™ 1 feature assures that you'll get 
the lowest possible fares available for the seats you book. 

In addition, you can reserve a room at more than 
12,000 hotels — by name, by price or by location. You 
can also confirm a car from over 20 rental car compa- 
nies. Look at your personal Advantage® account. And 
even check the weather in die city you 11 be visiting. 

Once your reservations are booked, EAASY SABRE 
lets you decide where to pick up the ticket — from your 
SABRE Automated Travel Agency or Corporate Travel 

Office, at die airport, at an American Airlines City Ticket 
Office, by mail or from any other American Airlines 
audiorized distribution channel. 

Access die worlds most sophisticated travel automa- 
tion system. Its that simple. And economical. Because 
dieres currently no surcharge for using EAASY SABRE. You 
just need to subscribe to one of the data networks listed. 
For more information on subscribing to a network, call: 
Dialcom, Inc. 
General Electric Information Services Company 


QuantumLink (for Commodore computers only) 




AAdv.intage® is a registered service mark of American Airlines, Inc. 


ITCs Modula-2 Software 
Development System 

by Mark Bridger 

The Modula-2 language was 
developed by Professor 
Niklaus Wirth, who also 
created Pascal. As a longtime 
Pascal and 'Ilirbo Pascal user, 
I wanted to compare the two 
languages and to examine 
the version of Modula-2 from 
Interface Technologies Corporation 


ITCs Modula-2 has a built-in syntax 
editor. This sort of editor is probably 
familiar to you if you've programmed 
in LISP. In the ITC implementation, 
each Modula-2 construct has a tem- 
plate that is invoked using an 
< Alt > /keystroke combination. For 
example, pressing < Alt> F produces 
the template 

FOR <id>: = <expr> TO 

<expr> DO 

You use the Tkb key to skip to the two 
fields delineated by < > and fill in 
the missing variables and expressions. 
Statements between DO and END 
can be entered by using the <Alt> 
P command; semicolons are inserted 
automatically for each statement. If an 
inserted statement is a template, then 
the editor automatically indents it ap- 
propriately. The editor also adds right- 
hand parentheses to match the left- 
hand ones that you type in. 

It is impossible to type in a program 
using the ITC editor without employ- 
ing these templates. At first this 
seemed annoyingly cumbersome, but 
there is a method to it. First, Modula-2 
is a case-sensitive language, and all re- 
served words such as FOR, TO, and 
END must be capitalized. This can be 
very annoying, even to a good typist. 

An inexpensive Modula-2 

compiler and editor package for 

IBM PCs and compatibles 

The use of templates obviates this dif- 
ficulty. Second, the use of templates 
virtually eliminates syntax errors and 
makes it extremely easy to learn 
Modula-2, especially if you already 
know Pascal. While it takes some time 
to get used to the various <Alt> 
commands to invoke the templates, 
ITC has made them as mnemonically 
reasonable as possible (e.g., <Alt> 
F = "FOR. . .," <Alt> A = 'AR- 
RAY!. • •]■" etc.). The <Alt> com- 
mands have different meanings de- 
pending on whether you are in the 
declaration, type, or code section of 
the program. In the declaration sec- 
tion, for example, <Alt> F gives the 
template for a function (i.e., a pro- 
cedure with RETURNed value). 

You can also import files of code 
prepared by other editors. Unfortu- 
nately, the ITC editor is finicky about 
syntax; it will not import any code that 
has any syntax errors, including errors 
resulting from incompatibility with 
various ITC Modula-2 library declara- 
tions. If an error is discovered during 
importation it is pointed out, but it 
must be corrected using another 

The ITC editor provides some of the 
features found in more standard 
editors, such as searching for, copy- 
ing, and replacing strings. The editor 
also lets you embed blocks of code 
within other blocks or, inversely, ex- 
tract marked blocks from within 
others. The blocks, however, must be 

full syntactical (indentation 
level) blocks (e.g., a complete 
. . .UNTIL block). In general 
I found the editor a bit un- 
wieldy, since many of its 
commands are accessed 
through function and Alt keys 
that call pull-down menus. These 
menus in turn require selection of a 
field (using the l^b key) and then 
perhaps further keyboard input. For 
an unskilled typist this is probably all 
right, but most serious programmers 
have enough typing skills to make this 
procedure rather frustrating. 

You can use the editor to move 
around within the program in two 
ways: line by line with the left and 
right arrow keys (the working line 
becomes highlighted), or block by 
block with the up and down arrow 
keys. The term "block" here means a 
syntax block (i.e., a group of lines of 
code at the same indentation level). 
You continue to move in blocks of the 
same level until you reach a larger 
block size; thereafter, moves are in 
these larger blocks. Moving down a 
level is accomplished through the left 
and right arrow keys. This can permit 
fairly quick movement through a 
modest-size program, but not really 
fast enough through a larger one. The 
addition of page- or screen-size move- 
ment would be useful. 

Whether the syntax editor for ITCs 
Modula-2 is better than a standard 
text editor depends on your familiar- 
ity with the package and personal 
preference. I didn't like the ITC editor 

Mark Bridger (31 Champa St.. Newton. MA 
02 164) is president of Bridge Software and 
an associate professor of mathematics at 
Northeastern University. 

OCTOBER 1986 -BYTE 255 


Modula-2 Software 
Development System 


Modula-2 compiler and development 
environment for MS-DOS and PC-DOS 


Interface Technologies Corporation 
3336 Richmond 
Suite 200 

Houston, TX 77098 
(713) 523-8422 


IBM PC or compatible; 256K bytes of 
RAM; two floppy disk drives 


A built-in syntax-directed editor checks the 
code as it is written 


Modula-2 Software Development System 
(standard package): $80.88 
Modula-2 SDS-XP (with additional 
utilities): $99 

at first, but after using it I began to 
appreciate its templates. 

Compiling and Linking 

The entire ITC Modula-2 package of 
editor, compiler, and linker is all in 
one unit. Choices are made by means 
of pull-down menus, and execution is 
done by overlaid code. Running ITC's 
Modula-2 from a floppy disk drive is 
a slow process. I ran it from a RAM 
disk, but this requires over 600K bytes 
of RAM. Early versions of the pro- 
gram had serious bugs when run on 
RAM disks, although I have not had 
any system freeze-ups while compil- 
ing with the latest version (version 2). 
ITC's Modula-2 seems to conform to 
the standards set forth by. Wirth for 
Modula-2. All standard libraries are 
available as well as some additional 
ones; for example, there is ReallnOut, 
a library for reading and writing real 
numbers. ReallnOut, however, has two 
annoying features: It only outputs real 
numbers in scientific notation, and if 
a real number is entered from the key- 
board without a digit in front of the 
decimal point, the real number is re- 
corded internally as without any 
warning. In addition, the field width 

parameter still has a bug that was 
present in earlier versions. 

ITC implements the Modula-2 open 
array parameter, which allows a pro- 
cedure declaration to accept an array 
of a specified type but a nonspecif ied 
length. The bounds are determined 
when the procedure has accepted a 
particular array at run time. This is a 
very useful improvement over Pascal 
especially for writing library pro- 
cedures for, say, matrix manipulation. 

There is also a graphics interface 
that supports point, line, and box 
drawing (all of which are quite slow), 
a sound interface enabling the pro- 
duction of a tone of prescribed fre- 
quency a DOS interface, and a pro- 
cedure to perform certain DOS and 
BIOS interrupts. For about $20 more, 
ITC offers a Foreign Object Module 
Import package, which is essentially 
a tool for linking ITC Modula-2 with 
8086 assembly language object 
modules. This package has some re- 
strictions, the most serious being its 
apparent inability to deal with a sep- 
arate data segment in the assembly 
code. This restriction is shared with 
llirbo Pascal, but Borland Interna- 
tional doesn't charge anything extra 
for the ability to graft on machine 
code. There are ways around this 
limitation, for example, putting data 
in the code segment and jumping 
over it. Nevertheless, it's an annoying 
restriction for a large program devel- 
opment system. 

ITC's Modula-2 has a built-in library 
creation facility enabling program- 
mers to build up collections of sepa- 
rately compiled modules for linking 
with other programs. Source and ob- 
ject code stored in such a library can 
be accessed only by opening the 
library from the editor or the com- 
piler. A bug occasionally prevented 
the compiler from finding one of my 
libraries when it was in drive C. The 
compiler could only find the library 
when it was on the floppy disk in 
drive A. 

The ITC editor and compiler appear 
to interact, with the compiler doing 
some preliminary work as code is 
entered into the editor. I could not 
determine exactly what this work en- 
tailed; a menu choice offers the op- 
tion of turning this background com- 

pilation off, but it didn't help when I 
tried to import a syntactically incor- 
rect file. 

It is important to remember that 
Turbo Pascal is limited to compiled 
code of fewer than 64K bytes. There 
is no such limitation for ITC Modula-2; 
Programs can be as long as the disk 
or the memory can handle. 

Benchmark Results 

For this review, I rewrote the bench- 
marks from my review of llirbo Pascal 
3.0 (see February BYTE) in Modula-2. 
As shown in table I , Tlirbo Pascal has 
the edge in all categories except arith- 
metic floating-point operations (multi- 
plication and division) done with the 
8087, where ITC has a three-to-one 
speed advantage. On the other hand, 
Tarbo Pascal has an equally dramatic 
advantage in non-8087 number 
crunching and in heap management. 
In analyzing compilation speed, 
however, one mu